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

Jim*_*Jam 5 python python-3.x

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

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

Łuk*_*ski 7

你可以使用operator模块.

operator模块导出一组与Python的内部运算符相对应的高效函数.例如, operator.add(x, y)等同于表达式x+y.函数名称是用于特殊类方法的函数名称; 为方便起见,还提供了没有前导和尾随__的变体.

因此,在列表中存储"操作"就像这样简单:

import operator
operations = [operator.add, operator.sub]
# add two numbers
s = operations[0](1, 2)
Run Code Online (Sandbox Code Playgroud)