2024-07-02 13:14:08 发布
网友
为了使Python看起来更为熟悉,我尝试将运算符符号赋给变量名,只是出于教育目的:import operatorequals = operator.eq 这似乎对equals(a,b)很好,但对a equals b不起作用
import operator
equals = operator.eq
equals(a,b)
a equals b
有没有办法表达a equals b而不是a == b
a == b
不一定,但是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这样的表达式不合语法。你知道吗
不一定,但是another SO answer展示了如何使用this simple trick来“创建”新操作符。但是,它们仅在运算符周围环绕
| |
或<< >>
时有效:你能做的就是
或者
但是为了便于阅读,应该使用内置操作符。这样,读者就可以立刻分辨出运算符、函数、符号(变量)、成员函数等。。。你知道吗
不,Python(和大多数主流语言)不允许这种定制。在Python中,这种限制是有意为之的,任何熟悉Python的读者都会觉得像
a equals b
这样的表达式不合语法。你知道吗相关问题 更多 >
编程相关推荐