如何调用函数列表并使用列表推导?
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()
它有效吗?
当然,您可以按照FábioDiniz所说的:)进行操作,但是对于将类方法用作可调用对象时,必须将其作为参数提供给对象:
fobj= F()
for f in fobj.fl:
f(fobj)
该对象必须作为可调用对象的参数提供,因为当您查看方法def funcX(self):
的定义时,该方法需要一个参数“ self ”
问题内容: 这个问题已经在这里有了答案 : 如何创建Python Lambda列表(在列表理解/ for循环中)? (8个答案) 使用lambdas的Python列表理解[重复] (4个答案) 列表理解内的Lambda (5个答案) 奇怪的行为:列表理解内的Lambda (7个答案) 2年前关闭。 为什么不是呢?听不懂 那么,由于某种原因,我们所有的lambda中都有?为什么? 问题答案: 这是因
问题内容: 我正在运行Python 3.4.2,我对代码的行为感到困惑。我正在尝试创建递增次数的可调用多项式函数列表: 但是出于某种原因,它这样做: 为什么似乎在列表理解中重复了最后一个lambda表达式的列表? 问题答案: 这个问题是经典的“陷阱”,是在lambda函数被调用之前,不会查找lambda函数中引用的内容。当时的值是结束时绑定到的最后一个值,即。 如果绑定到函数定义中的默认值,则每个
问题内容: 从我的Python控制台 为什么在最后打印出三个都不打印? 问题答案: 列表理解不是当前工作的正确工具。它将始终返回一个 list ,并且给定的结果为,该列表将填充值。当我们对创建值列表不感兴趣时,仅对不返回值的函数求值时,简单的循环会更好:
问题内容: 从这个线程开始:如何通过选择随机变量在Python中执行随机事件?\ 我了解到可以将一些函数放入列表中,并通过使用调用其中一个函数来生成随机事件。 我对此很感兴趣,因为在初学者教程中,我正在写一个很小的基于文本的游戏。 但是当我写我认为会给我想要的结果的时候(也就是说,只是调用其中一个函数并打印其字符串: 我得到这个结果: 这三个函数都被调用和打印。 有人可以帮我解决正确的语法吗?谢谢
我从这个URL刮取了这个表: "https://www.patriotsoftware.com/blog/accounting/average-cost-living-by-state/" 看起来像这样: 然后我编写了这个函数来帮助我将字符串转换成整数: 当我只将函数应用于一列时,它就会工作。我在这里找到了关于在多个列上使用的答案:如何将函数应用于多个列 但我下面的代码不起作用,也不会产生错误:
问题内容: 有没有一种方法可以测试列表(或字典)理解中的函数返回?我想避免这样写: 并改用列表推导。显然,我不想写: 所以? 问题答案: 怎么样 如果您不想保留中间列表,请替换为。有了,整个东西可以变成发电机。