(Python)我可以在列表中存储函数本身,但不能存储它们的值

时间:2016-10-11 23:38:26

标签: python list

从下面的代码中可以看出,我在列表中添加了一系列函数。 结果是每个函数都被运行并且返回的值被添加到列表中。

foo_list = []
foo_list.append(bar.func1(100))
foo_list.append(bar.func2([7,7,7,9]))
foo_list.append(bar.func3(r'C:\Users\user\desktop\output'))

我想知道的是,是否可以将函数存储在列表中,然后在for循环中迭代时运行?

enter image description here

1 个答案:

答案 0 :(得分:4)

是的,只需使用lambda:

foo_list = []
foo_list.append(lambda: bar.func1(100))
foo_list.append(lambda: bar.func2([7,7,7,9]))
foo_list.append(lambda: bar.func3(r'C:\Users\user\desktop\output'))

for foo in foo_list:
    print(foo())