类变量
- 什么是类变量
- 定义类变量
- 取得类变量的值
- 设置类变量的值
- 删除类变量
- 类变量的存储
什么是类变量
- 属于类本身这个对象的属性
- 所有该类的对象都共享类变量
calss Student:
pass
print(Student.__name__)
示例
class Student:
pass
def main():
print(Student.__name__)
if __name__ == '__main__':
main()
输出
Student
类变量属于类本身
定义类变量
class Student:
student_count = 0
取得类变量的值
直接取值和使用getattr()函数
# 直接取值
print(Student.student_count)
# 使用getattr()函数
print(getattr(Student, "student_count"))
输出
0
0
getattr函数
print(getattr(Student, "unknown", "10")) # 缺省值
设置类变量的值
# 直接修改
Student.student_count = 89
print(Student.student_count)
# 利用setarrt()函数修改
setattr(Student, "student_count", 100)
print(Student.student_count)
# 如果类变量不存在,可以在运行时添加
Student.unknown = "hello"
删除类变量
使用del操作符或使用delatte()函数
class Student:
student_count = 0
del Student.student_count
delattr(student, "student_count")
类变量的存储
类变量全部存放在类变量__dict__这个字典里面,但不要直接修改__dict__的内容
class Student:
student_count = 0
pprint(Student.__dict__)
输出
mappingproxy({'__dict__': <attribute '__dict__' of 'Student' objects>,
'__doc__': None,
'__module__': '__main__',
'__weakref__': <attribute '__weakref__' of 'Student' objects>,
'newattribute': 'hello',
'student_count': 4})
资料来源:【面向对象的Python编程-02.类变量】 https://www.bilibili.com/video/BV1k8411a7ks/?share_source=copy_web&vd_source=0235d88ba3487903dc658fe856ba0135
UP:跟峰哥学编程