2

为了使 Python 看起来更熟悉,我尝试将运算符符号分配给变量的名称,仅用于教育目的:import operator equals = operator.eq 这似乎适用于equals(a,b)但不适用于a equals b

有没有办法表达,a equals b而不是a == b

4

3 回答 3

4

不,Python(和大多数主流语言)不允许这种定制。a equals b在 Python 中,这种限制是有意为之的——对于任何熟悉 Python 的读者来说,这样的表达式看起来不合语法。

于 2013-06-22T12:02:28.200 回答
1

不一定,但另一个 SO 答案显示了如何使用这个简单的技巧来“创建”新的运算符。但是,它们仅在您将运算符包围为| |或时才有效<< >>

equals = Infix(lambda x, y: x == y):
print 2 |equals| 2 # True
于 2013-06-22T12:37:26.780 回答
0

你能做的最好的就是

def equals(a,b):
    return a == b

equals(1,5)
>> False

或者

class my:
value = 0
def equals(self, b):
    return self.value == b

a = my()

a.equals(3)
>>False

但是您应该使用内置运算符来提高可读性。这样,读者可以立即区分运算符、函数、符号(变量)、成员函数等......

于 2013-06-22T12:29:50.547 回答