Python - 有没有办法将操作(+ - * /)存储在列表中或作为变量?

时间:2016-05-10 15:25:47

标签: python python-3.x

我问的原因是纯粹的好奇心。我可能会看到,如果您事先不知道要对某些变量应用哪些操作,或者在递归调用中的某个级别应用不同的操作,或者可能是可能只是让某些事情变得更容易和/或更整洁。

虽然我只是猜测,但这可能是一个非常糟糕的主意,但整体而言只是好奇。

2 个答案:

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