gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:43:23 25 4
gpt4 key购买 nike

对 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) 求值为 function0str 的返回值 作为参数。

如果你只是想把函数对象放在一个字典中以供进一步使用,做

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)

关于python - 在为函数构建字典时,我的代码会自动执行该函数。我怎样才能阻止这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com