我真诚地希望这不是重复,但我找不到答案(你会注意到我甚至不知道如何提出这个问题!)。
我有一个类和许多def的python代码。需要花费太多时间来解释我为什么要这样做,但我确实能够:
class A:
def a(self):
some argument
def b(self):
another argument
所以要打电话给def,我只是说:
A().a()
A().b()
我想做的是让第三个def看起来像这样:
def c(self):
process = [A().a(), A().b(), A().a(), A().a()] #This sequence is just an example - there are many more def's.
for i in process:
print 'Hello'
i
print 'Bye'
我不知道这是否有意义?目前发生的是调用过程部件,然后多次打印两条打印行。
感谢。
答案 0 :(得分:3)
这可能会有效吗?
def c(self):
process = [self.a, self.b, self.a, self.a]
for i in process:
print 'Hello'
i()
print 'Bye'
在原始示例中,您不是存储函数,而是在构建列表时调用它们。方法的返回值存储在列表中,这就是为什么以后无法调用它们的原因。