0

我正在使用 pythons cmd 模块制作游戏,但我遇到了这个问题。我有一个函数,我将一个变量传递给该函数,该函数对其进行更改并返回它。但是当我将函数设置为等于变量时,它说value在赋值之前已经被引用。但是,如果我不将函数设置为等于,它就不会这样做value,但显然value在全局层面上没有改变。我试图找到一个解决方案,但没想到我会在这里问。任何帮助表示赞赏。

from cmd import Cmd

class stuff(Cmd):
    def do_command(self, args):
        value = command(value)

def command(value):
    value = "new value"
    return value

value = "value"

if __name__ == "__main__":
    prompts = stuff()
    prompts.cmdloop()
4

1 回答 1

0

好的,我通过在do_command函数中放置一个 gobal 变量来修复它,如下所示:

from cmd import Cmd

class stuff(Cmd):
    def do_command(self, args):
        global value
        value = command(value)

def command(value):
    value = "new value"
    return value

value = "value"

if __name__ == "__main__":
    prompts = stuff()
    prompts.cmdloop()
于 2020-12-19T11:29:09.587 回答