给出以下最小代码片段:
def cmp(a, b, cmp):
return cmp(a, b)
a = 1
b = 2
print(cmp(a, b, operator.__eq__))
我只想将一个内置运算符(如==
或>
)作为函数句柄添加到函数中。例如,如果比较所有需要一些预检查,这将非常有用。
最后一行会出错,因为它不知道operator.__eq__
。如何在该行上正确命名(和导入)==
运算符?
答案 0 :(得分:1)
只需添加import operator
,代码即可运行。
import operator
def cmp(a, b, _cmp):
return _cmp(a, b)
a = 1
b = 2
print(cmp(a, b, operator.__eq__))
为了清楚起见,我重命名了函数参数。