"local variable 'stringData' referenced before assignment" python 中的错误
"local variable 'stringData' referenced before assignment" error in 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
我收到有关变量的这个(恼人的)错误。这是我的代码,我不知道是什么原因造成的,也不知道如何修复它:
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