在循环中调用列表中的每个方法?

时间:2015-08-30 06:25:02

标签: python python-2.7

这是我想做的,但不确定是否有办法做到这一点:

7
-1
12

结果应为:

{{1}}

我如何为任何大小的列表完成此操作,以及在Python中调用的是什么?

2 个答案:

答案 0 :(得分:5)

要完全按照您要执行的操作,您需要使用getattr

methods = ['__add__', '__sub__', '__mul__']

a = 3
b = 4

for m in methods:
    print getattr(a, m)(b)

但是,至少对于这个特定的例子,最好这样做:

from operator import add, mul, sub

ops = [add, sub, mul]

a = 3
b = 4

for op in ops:
    print op(a, b)

答案 1 :(得分:3)

您可以使用getattr按名称调用方法:

methods = ['__add__', '__sub__', '__mul__']

a = 3
b = 4

for m in methods:
    print getattr(a, m)(b)