Python中内置运算符的函数句柄

时间:2016-04-13 09:02:26

标签: python python-3.x

给出以下最小代码片段:

def cmp(a, b, cmp):
    return cmp(a, b)

a = 1
b = 2
print(cmp(a, b, operator.__eq__))

我只想将一个内置运算符(如==>)作为函数句柄添加到函数中。例如,如果比较所有需要一些预检查,这将非常有用。

最后一行会出错,因为它不知道operator.__eq__。如何在该行上正确命名(和导入)==运算符?

1 个答案:

答案 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__))

为了清楚起见,我重命名了函数参数。