Python - 是否可以将变量设置为运算符?

时间:2013-10-04 01:57:41

标签: python variables operation

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

由于所有这些功能仅由操作员区分,我想知道 - 是否可以将变量设置为运算符?例如,你能做什么(类似):

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

我知道具体不起作用,但是有类似的东西可以起作用吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

请尝试以下操作:

>>> op = lambda a, b: a + b
>>> result = op(5, 7)
>>> result
12