我的程序包含一个在本地创建的变量,但我想在另一个函数中使用它,有没有我可以做的?

2024-09-29 17:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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()

当出现此错误时:

^{pr2}$

现在,除了粗体和斜体外,不要担心其他任何东西,尽管您可能会发现其他东西对理解目的很有用。我试着加入global WordsWithChanges,但大多数人都知道这没用,谢谢你的合作,如果你有什么需要尽管问!在


Tags: in程序txtforclosedeflineopen
2条回答

如果不想将变量设为全局变量,可以从原始函数中返回它,并在第二个要使用它的函数中调用该函数,并设置一个与返回值相等的新变量。在

如果要快速解决问题,可以在定义原始变量时使用global声明:

global WordsWithChanges

但这被认为是非常糟糕的做法,我不建议这样做。在


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

相关问题 更多 >

    热门问题