首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UnboundLocalError:在创建构造函数后,在成员函数中赋值之前引用了局部变量“temperature”?

UnboundLocalError:在创建构造函数后,在成员函数中赋值之前引用了局部变量“temperature”?
EN

Stack Overflow用户
提问于 2020-11-23 03:42:12
回答 1查看 260关注 0票数 0

我是Python的新手,在运行这个Python类时,我得到了以下错误:

我使用的是PyScripter,运行的是Python3.9(64位)

我创建了一个类加热器,初始化了一个变量temperature,以及一些修改这个变量的函数。

然后我创建了一个对象并使用了函数,然后它给了我一个错误!

代码语言:javascript
复制
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()

我得到了以下输出,然后是这个错误:

代码语言:javascript
复制
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,然后我得到了这个错误:

代码语言:javascript
复制
  File "<module1>", line 13
SyntaxError: no binding for nonlocal 'temperature' found
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-26 05:49:46

在查看您的代码之后,我注意到您正在尝试仅使用temperature访问self.temperature

每个方法接收的第一个参数(self)是对象本身的引用,用于访问对象属性和方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64958724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档