2

我正在开发一堆具有相同基本结构的函数 - 它们采用两个列表并使用循环对两个列表成对执行特定操作(例如,一个会将列表的每个元素提升到所代表的幂通过第二个列表中的相应元素)。

由于所有这些功能仅因运算符而异,我想知道 - 是否可以将变量设置为运算符?例如,你能做(类似于):

var = +
var2 = 5 var 7       #var2 is now 12

我知道这特别行不通,但是有什么类似的东西可以类似地工作吗?

4

2 回答 2

7

是的!您需要该operator模块,它“将 Python 的内在运算符公开为高效函数”。

import operator

op = operator.add
var = op(5, 7)

正如@falsetru 指出的那样,lambda 也很方便。不过,其中的函数operator会快一点:

from timeit import timeit
print timeit("add(5, 7)", "add = lambda x, y: x+y")    # about 0.176 OMM
print timeit("add(5, 7)", "from operator import add")  # about 0.136 OMM
于 2013-10-04T02:00:11.547 回答
2

尝试以下操作:

>>> op = lambda a, b: a + b
>>> result = op(5, 7)
>>> result
12
于 2013-10-04T01:59:36.780 回答