"local variable 'stringData' referenced before assignment" python中的错误



我得到这个(恼人的)错误关于一个变量。这是我的代码,我不知道是什么导致的,也不知道如何修复它:

stringData = ''
newLine = True
def displayData():
print(stringData)
def addData(str):
if newLine and stringData != '':
stringData += f'n{str}'
else:
stringData += str

它没有给出太多的错误上下文,我不知道如何修复它。

小心,你的变量str是一个保留关键字,不应该用作变量名。也就是说,这不是你问题的根源。下面的代码通过覆盖stringData的值来工作。

stringData = ''
newLine = True
def displayData():
print(stringData)
def addData(my_str,stringData):
if newLine and stringData != '':
stringData += f'n{my_str}'
else:
stringData += my_str
return stringData
stringData = addData('4',stringData)
stringData = addData('3',stringData)
displayData()

你可以使用class:

class myData:
def __init__(self):
self.stringData = ''
self.newLine = True
def displayData(self):
print(self.stringData)
def addData(self, str):
if self.newLine and self.stringData != '':
self.stringData += f'n{str}'
else:
self.stringData += str

:

md = myData()
md.addData("Hello")
md.displayData()
OUT : 
Hello

:

md.addData("World")
md.displayData()
OUT:
Hello
World

最新更新