Python 我的程序包含一个本地创建的变量,但我想在另一个函数中使用它,是否还有其他方法可以这样做?

Python 我的程序包含一个本地创建的变量,但我想在另一个函数中使用它,是否还有其他方法可以这样做?,python,variables,global-variables,local,Python,Variables,Global Variables,Local,我的程序包含了很多内容,所以我不会用细节来烦你,如果你发现了我没有发现的任何其他问题,你不需要指出,除非你有严重的强迫症。以下是与我要问的问题相关的节目部分 def LettersIntoCode(): cluesFile = open("clues.txt", 'r+') cluesLines = cluesFile.readlines() cluesFile.close() clues = {} for line in cluesLines:

我的程序包含了很多内容,所以我不会用细节来烦你,如果你发现了我没有发现的任何其他问题,你不需要指出,除非你有严重的强迫症。以下是与我要问的问题相关的节目部分

def LettersIntoCode():
    cluesFile = open("clues.txt", 'r+')
    cluesLines = cluesFile.readlines()
    cluesFile.close()
    clues = {}
    for line in cluesLines:
        clues[line[1]] = line[0]
    CodedFile = open('words.txt')
    print()
    for line in CodedFile:
        ***WordsWithChanges = (''.join(clues.get(c,c) for c in line.strip('\r\n')))***
        print(WordsWithChanges)
    CodedFile.close()

def GameCompletion():
    SolvedFile = open("solved.txt", 'r')
    ***while WordsWithChanges != SolvedFile***:
        MenuChoice()
    SolvedFile.close()
调用时,会弹出此错误:

    while WordsWithChanges != SolvedFile:
NameError: global name 'WordsWithChanges' is not defined

现在,除了粗体和斜体之外,不要担心其他任何东西,尽管你可能会发现其他东西对于理解目的很有用。我试过输入
全球单词swithchanges
,但大多数人都知道这不起作用,谢谢你的合作,如果你需要什么,尽管问吧

如果要避免将变量设置为全局变量,可以做的是从原始函数返回该变量,并在要使用该变量的第二个函数中调用该函数,将新变量设置为等于返回值。

要快速解决此问题,可以在定义原始变量时使用
全局
声明:

global WordsWithChanges
但这被认为是非常糟糕的做法,我不推荐这样做



要真正解决您的问题:之所以会出现这种情况,是因为如果您在某个范围内创建变量,则该变量仅在该范围内可用。因此,变量可以是局部定义的,但不能是全局定义的。正如我在评论中所说,这表明您可能应该重新考虑程序逻辑。

我真的不明白使用这些函数的意义。解决此问题的最简单方法是将它们全部清除。
LettersIntoCode
应返回
WordsWithChanges
,这样这个值就可以在调用者中使用了。这并没有我键入“var=WordsWithChanges”时的效果好,因为它声称没有定义WordsWithChages?@user3495049后面的选项可能很难实现。使用第一个选项进行修复,然后在程序完全运行时开始处理这类事情。