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

2024-04-20 09:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

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

由于所有这些函数只有一个运算符不同,我想知道-是否可以将变量设置为运算符?例如,你能做(类似的事情):

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

我知道这是行不通的,但是有没有类似的东西能起到类似的作用呢?你知道吗


Tags: 函数元素列表isvar运算符事情结构
2条回答

是的!您需要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

尝试以下操作:

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

相关问题 更多 >