如何将中缀运算符用作高阶函数?

有什么方法可以在不创建“包装器”函数的情况下将中缀运算符(例如+,-,*,/)用作python中的高阶函数?


def apply(f,a,b):

  return f(a,b)


def plus(a,b):

  return a + b


# This will work fine

apply(plus,1,1)


# Is there any way to get this working?

apply(+,1,1)


波斯汪
浏览 148回答 3
3回答

慕雪6442864

使用运算符模块和字典:>>> 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中不是有效的标识符。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python