Jer*_*Gao 28 python list-comprehension function list
我可以调用函数列表并使用列表理解吗?
def func1():return 1
def func2():return 2
def func3():return 3
fl = [func1,func2,func3]
fl[0]()
fl[1]()
fl[2]()
Run Code Online (Sandbox Code Playgroud)
我知道我能做到
for f in fl:
f()
Run Code Online (Sandbox Code Playgroud)
但我可以在下面做吗?
[f() for f in fl]
Run Code Online (Sandbox Code Playgroud)
例如,如果我的职能列表在课堂上,那么对于那些善良的人来说是另一个问题
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()
Run Code Online (Sandbox Code Playgroud)
它有用吗?
P2b*_*2bM 15
当然你可以像FábioDiniz所说:)但是对于用作可调用的类方法,必须将对象作为参数给出:
fobj= F()
for f in fobj.fl:
f(fobj)
Run Code Online (Sandbox Code Playgroud)
该对象必须作为可调参数的参数给出,因为当您查看该方法def funcX(self):的定义时,该方法需要一个参数" self "