UnboundLocalError: local variable 'temperature' referenced before assignment in the member function after creating a constructor?
UnboundLocalError: local variable 'temperature' referenced before assignment in the member function after creating a constructor?
我是 Python 的新手,当 运行 这个 Python class:
时我遇到了这些错误
我正在使用 PyScripter,我是 运行 Python 3.9(64 位)
我创建了 class 加热器,初始化了一个变量 temperature
,以及一些修改此变量的函数。
然后我创建了一个对象并使用了函数然后它给了我一个错误!
class Heater :
temperature = 0
def __init__(self):
temperature = 20
def warmer(self):
temperature += 5
def cooler(self):
temperature -= 5
def display(self):
print ("Temperature is " , self.temperature)
h1 = Heater()
h1.display()
h1.cooler()
h1.display()
h1.warmer()
h1.display()
我收到以下输出,然后出现此错误:
Temperature is 0
Traceback (most recent call last):
File "<module1>", line 30, in <module>
File "<module1>", line 22, in cooler
UnboundLocalError: local variable 'temperature' referenced before assignment
我将 temperature = 0
更改为 nonlocal temperature
然后我收到此错误:
File "<module1>", line 13
SyntaxError: no binding for nonlocal 'temperature' found
查看您的代码后,我注意到您正在尝试仅使用 temperature
.
访问 self.temperature
每个方法接收的第一个参数 (self
) 是对象本身的引用,用于访问对象属性和方法。
我是 Python 的新手,当 运行 这个 Python class:
时我遇到了这些错误我正在使用 PyScripter,我是 运行 Python 3.9(64 位)
我创建了 class 加热器,初始化了一个变量 temperature
,以及一些修改此变量的函数。
然后我创建了一个对象并使用了函数然后它给了我一个错误!
class Heater :
temperature = 0
def __init__(self):
temperature = 20
def warmer(self):
temperature += 5
def cooler(self):
temperature -= 5
def display(self):
print ("Temperature is " , self.temperature)
h1 = Heater()
h1.display()
h1.cooler()
h1.display()
h1.warmer()
h1.display()
我收到以下输出,然后出现此错误:
Temperature is 0
Traceback (most recent call last):
File "<module1>", line 30, in <module>
File "<module1>", line 22, in cooler
UnboundLocalError: local variable 'temperature' referenced before assignment
我将 temperature = 0
更改为 nonlocal temperature
然后我收到此错误:
File "<module1>", line 13
SyntaxError: no binding for nonlocal 'temperature' found
查看您的代码后,我注意到您正在尝试仅使用 temperature
.
self.temperature
每个方法接收的第一个参数 (self
) 是对象本身的引用,用于访问对象属性和方法。