Python 在为函数构建字典时,我的代码会自动执行该函数。我怎样才能阻止这一切?
对python来说相对较新。现在我遇到了以下问题,我已经设置了一个字典,这样当我给出一个特定的输入时,它会执行定义的函数,但即使我设置输入不执行函数,它仍然会执行。下面是代码的基本情况Python 在为函数构建字典时,我的代码会自动执行该函数。我怎样才能阻止这一切?,python,dictionary,python-3.x,Python,Dictionary,Python 3.x,对python来说相对较新。现在我遇到了以下问题,我已经设置了一个字典,这样当我给出一个特定的输入时,它会执行定义的函数,但即使我设置输入不执行函数,它仍然会执行。下面是代码的基本情况 options = [] def function0(str): print(str,"0") str = "blahblahblah" operations = {0:function0(str)} for i in range(len(options)): operations[options[i]]
options = []
def function0(str): print(str,"0")
str = "blahblahblah"
operations = {0:function0(str)}
for i in range(len(options)): operations[options[i]]
此代码仍在打印function0输出。我还得出结论,在我设置字典“操作”之后,它正在执行函数。为什么会这样?我怎样才能不这样做?当您在控制台中键入代码时,会发生这种情况,因为每一行都会立即计算 您可能打算这样做:
operations = {0:function0}
for i in options:
operations[i](str)
请注意,在运行序列时,不需要显式计数器。因此,您不需要
范围(len(options))
部分。在控制台中键入代码时会发生这种情况,因为每一行都会立即计算
您可能打算这样做:
operations = {0:function0}
for i in options:
operations[i](str)
请注意,在运行序列时,不需要显式计数器。因此,您不需要
范围(len(options))
部分。执行代码是因为您调用函数:function0(str)
以str
作为参数计算function0
的返回值
如果您只是想将函数对象放入dict中以供进一步使用,请执行以下操作
operations = {0: function0}
以下是一些旁注:
str
用作变量名str
是一种内置类型,您不应该用变量来隐藏此名称int
循环将其用作索引是非音速的。还要注意,您没有在代码中调用函数。您的循环应该如下所示:
for op_index in operations:
operations[op_index](mystr)
或:
执行代码是因为调用函数:
function0(str)
的计算结果为function0
的返回值,参数为str
如果您只是想将函数对象放入dict中以供进一步使用,请执行以下操作
operations = {0: function0}
以下是一些旁注:
str
用作变量名str
是一种内置类型,您不应该用变量来隐藏此名称int
循环将其用作索引是非音速的。还要注意,您没有在代码中调用函数。您的循环应该如下所示:
for op_index in operations:
operations[op_index](mystr)
或:
我没有str作为变量,name,我只是用它作为填充来解释我的代码,但非常感谢。这很有帮助。我没有把str作为变量,name,我只是用它作为填充来解释我的代码,但非常感谢。那很有帮助。