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后面的选项可能很难实现。使用第一个选项进行修复,然后在程序完全运行时开始处理这类事情。