【发布时间】:2018-02-07 13:31:25
【问题描述】:
我确实有地图:
foo_map = {
'func1': sky()
'func2': tree()
'fnuc3': ground()
}
我确实有一个foobar_list = ['func2', 'fnuc3']
我也有方法:
d
ef sky():
print "sky"
def tree():
print "tree"
def ground():
print "ground"
我确实想做如下:
for element in foobar_list:
foo_map[element]
预期结果是调用分配给'func2'、'fnuc3' 所以tree() 和ground() 的方法而不调用sky()。虽然,sky() 和 ground() 和 tree() 在创建 foo 变量时被调用,因为我知道为这个变量对象分配了内存,因此调用被执行。
如何在不调用sky()的情况下实现以上功能???
编辑:
我的问题与突出显示的重复问题不重复。我的问题是用不同的关键字提出的,并且当我输入我的问题时,不建议将重复的问题作为建议的答案。从技术上讲,这两个问题是相同的,但从自然语言的角度来看,问题并不相同。
【问题讨论】:
-
不要把
()放在你的dict里面的函数名之后。 调用函数。您只想引用它们。 -
谢谢。这个答案太牛了。这么简单的事情让我很头疼。 PS。我不同意标记为重复的人,因为我一直在寻找答案,但由于缺乏知识而找不到正确的关键字来搜索问题。所以,我很感谢@khelwood 的帮助并让我重回正轨。我不尊重任何标记它并为我设置惩罚的人,因为那个人根本没有帮助,我不了解那个人行为背后的目标。干杯。
-
无法找到副本并不意味着它不是副本。像这样关闭它是正确的。
-
嘿 khelwood,我不是无法在迭代后执行函数调用。按照下面 deceze 的建议,我仍然缺少 ()。
-
@deceze,您是否建议:如果 questionA =/= questionB 和对 questionA 的回答是对 questionB => questionA == questionB 的回答?我对您的回答是:不,即使问题 A 的答案包含在问题 B 的答案中,问题 A 也不同于问题 B。所以,我的问题与您引用的问题不重复。
标签: python