这是我想做的,但不确定是否有办法做到这一点:
methods = [__add__, __sub__, __mul__]
a = 3
b = 4
for m in methods:
print a.m(b)
Run Code Online (Sandbox Code Playgroud)
结果应该是:
7
-1
12
Run Code Online (Sandbox Code Playgroud)
我如何为任何大小的列表完成此任务,以及在Python中调用的内容是什么?
要完成你想要做的事情,你需要使用getattr:
methods = ['__add__', '__sub__', '__mul__']
a = 3
b = 4
for m in methods:
print getattr(a, m)(b)
Run Code Online (Sandbox Code Playgroud)
但是,至少对于这个特定的例子,最好这样做:
from operator import add, mul, sub
ops = [add, sub, mul]
a = 3
b = 4
for op in ops:
print op(a, b)
Run Code Online (Sandbox Code Playgroud)