对 python 来说相对较新。现在我遇到了以下问题,我设置了一个字典,这样当我给出某个输入时它会执行定义的函数,但即使我设置输入不执行它仍然执行的函数。这基本上是代码的样子。
options = []
def function0(str): print(str,"0")
str = "blahblahblah"
operations = {0:function0(str)}
for i in range(len(options)): operations[options[i]]
此代码仍在打印出 function0 输出。我还得出结论,它在我设置字典“操作”后立即执行该功能。为什么会这样,我怎样才能不这样做?
请您参考如下方法:
执行代码是因为您调用函数:function0(str) 求值为 function0 和 str 的返回值 作为参数。
如果你只是想把函数对象放在一个字典中以供进一步使用,做
operations = {0: function0}
一些旁注:
- 不要使用
str作为变量名。str是一种内置类型,您不应在变量中隐藏此名称。 使用
int循环以将其用作索引是非 pythonic 的。另请注意,您没有在代码中调用函数。你的循环应该是这样的:for op_index in operations: operations[op_index](mystr)或:
for op in operations.values(): op(mystr)
