python - UnboundLocalError:在类属性声明中获取异常
问题描述
class Human:
population = 0
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
population += 1
human = Human("Name", 12, "M")
print(Human.population)
上面的代码抛出UnboundLocalError
异常。
完整声明: UnboundLocalError: local variable 'population' referenced before assignment
我该如何解决这个问题?
解决方案
Human 是可通过Human.population
类内部访问的类属性
它可以通过human.population
或在课堂外访问Human.population
class Human:
population = 0
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
#Access class attribute via ClassName inside class definition
Human.population += 1
human = Human("Name", 12, "M")
#Access class attribute via ClassName outside class definition
print(Human.population)
#Access class attribute via Class instance outside class definition
print(human.population)
输出将是
1
1
推荐阅读
- javascript - 排序Html表格列reactjs
- postgresql - Postgres 全文搜索 - 查找其他类似文档
- python - 如何解决这个致命错误:numpy/arrayobject.h:没有这样的文件或目录?
- sql - 为每一行添加额外的行,为特定列添加不同的值
- c# - Asp.Net Core 3.1 生成无法删除的 .exe 文件
- wordpress - .htaccess 重定向网址
- android - RecyclerView 为其项目设置错误的 MotionLayout 状态
- javascript - 如何在javascript中跟踪和保存虚拟滚动列表的最后滚动位置
- python - 在 pandas 数据帧上迭代函数的最快方法
- javascript - 在 NestJS 中使用 Mongoose 测试服务