如何改变Python操作符的外观?

2024-07-02 13:14:08 发布

您现在位置:Python中文网/ 问答频道 /正文

为了使Python看起来更为熟悉,我尝试将运算符符号赋给变量名,只是出于教育目的:import operatorequals = operator.eq 这似乎对equals(a,b)很好,但对a equals b不起作用

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


Tags: import目的符号运算符operatoreq办法equals
3条回答

不一定,但是another SO answer展示了如何使用this simple trick来“创建”新操作符。但是,它们仅在运算符周围环绕| |<< >>时有效:

equals = Infix(lambda x, y: x == y):
print 2 |equals| 2 # True

你能做的就是

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

但是为了便于阅读,应该使用内置操作符。这样,读者就可以立刻分辨出运算符、函数、符号(变量)、成员函数等。。。你知道吗

不,Python(和大多数主流语言)不允许这种定制。在Python中,这种限制是有意为之的,任何熟悉Python的读者都会觉得像a equals b这样的表达式不合语法。你知道吗

相关问题 更多 >