我问的原因是纯粹的好奇心。我可能会看到,如果您事先不知道要对某些变量应用哪些操作,或者在递归调用中的某个级别应用不同的操作,或者可能是可能只是让某些事情变得更容易和/或更整洁。
虽然我只是猜测,但这可能是一个非常糟糕的主意,但整体而言只是好奇。
答案 0 :(得分:6)
您可以使用operator
模块。
operator
模块导出一组有效的函数 对应于Python的内部运算符。例如,operator.add(x, y)
相当于表达式x+y
。功能 名称是用于特殊类方法的名称;变种没有 为方便起见,还提供了前导和尾随__。
所以存储"操作"列表中的内容非常简单:
import operator
operations = [operator.add, operator.sub]
# add two numbers
s = operations[0](1, 2)
答案 1 :(得分:0)
是的,您可以将函数放入列表或dict(这可能非常有用),您可以使用def,lambdas或import已定义的函数声明的函数,使用您的示例的operator模块(operator.add)等等)