我可以调用一个函数列表并使用列表理解吗?
def func1():return 1
def func2():return 2
def func3():return 3
fl = [func1,func2,func3]
fl[0]()
fl[1]()
fl[2]()我知道我能做到
for f in fl:
f()但是我可以在下面这样做吗?
[f() for f in fl]对于那些好心的人,还有一个问题,例如,如果我的函数列表在类中
class F:
def __init__(self):
self.a, self.b, self.c = 0,0,0
def func1(self):
self.a += 1
def func2(self):
self.b += 1
def func3(self):
self.c += 1
fl = [func1,func2,func3]
fobj= F()
for f in fobj.fl:
f()它起作用了吗?
发布于 2011-03-29 12:06:12
当然你可以像法比奥·迪尼兹说的那样:),但是对于用作callable的类方法,必须给出一个对象作为参数:
fobj= F()
for f in fobj.fl:
f(fobj)该对象必须作为参数提供给callable,因为当您查看方法def funcX(self):的定义时,该方法需要一个参数"self“
发布于 2011-03-28 23:48:37
>>> [f() for f in fl]
[1, 2, 3]绝对:)
发布于 2011-03-28 23:49:08
可以,停那儿吧。结果列表将保存函数的返回值。
https://stackoverflow.com/questions/5461571
复制相似问题