Skip to main content
 首页 » 编程设计

python之在为函数构建字典时,我的代码会自动执行该函数。我怎样才能阻止这个

2025年05月04日14JeffreyZhao

对 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} 

一些旁注:

  1. 不要使用str 作为变量名。 str 是一种内置类型,您不应在变量中隐藏此名称。
  2. 使用 int 循环以将其用作索引是非 pythonic 的。另请注意,您没有在代码中调用函数。你的循环应该是这样的:

    for op_index in operations: 
         operations[op_index](mystr) 
    

    或:

    for op in operations.values(): 
        op(mystr)