有什么方法可以在不创建“包装器”函数的情况下将中缀运算符(例如+,-,*,/)用作python中的高阶函数?def apply(f,a,b): return f(a,b)def plus(a,b): return a + b# This will work fineapply(plus,1,1)# Is there any way to get this working?apply(+,1,1)
3 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
使用运算符模块和字典:
>>> from operator import add, mul, sub, div, mod
>>> dic = {'+':add, '*':mul, '/':div, '%': mod, '-':sub}
>>> def apply(op, x, y):
return dic[op](x,y)
...
>>> apply('+',1,5)
6
>>> apply('-',1,5)
-4
>>> apply('%',1,5)
1
>>> apply('*',1,5)
5
请注意,您不能直接使用+,-等,因为它们在python中不是有效的标识符。
添加回答
举报
0/150
提交
取消