在 Python 中,如何将类似+
或<
作为参数的运算符传递给需要比较函数作为参数的函数?
def compare (a,b,f):
return f(a,b)
我已经阅读过类似的功能__gt__()
,__lt__()
但我仍然无法使用它们。
在 Python 中,如何将类似+
或<
作为参数的运算符传递给需要比较函数作为参数的函数?
def compare (a,b,f):
return f(a,b)
我已经阅读过类似的功能__gt__()
,__lt__()
但我仍然无法使用它们。
import operator
def compare(a,b,func):
mappings = {'>': operator.lt, '>=': operator.le,
'==': operator.eq} # and etc.
return mappingsp[func](a,b)
compare(3,4,'>')
使用 lambda 条件作为方法参数:
>>> def yourMethod(expected_cond, param1, param2):
... if expected_cond(param1, param2):
... print 'expected_cond is true'
... else:
... print 'expected_cond is false'
...
>>> condition = lambda op1, op2: (op1 > op2)
>>>
>>> yourMethod(condition, 1, 2)
expected_cond is false
>>> yourMethod(condition, 3, 2)
expected_cond is true
>>>