1. 类属性与实例属性基本认识
实例属性是一个类的实例所特有的,这意味着对于两个不同的实例,实例属性经常是不同的。
类属性是类所特有的,所有实例共享这个类属性,类属性经常定义在类的开头,方法的外面。
如下图所示,类属性既可以通过实例调用,也可以直接通过类名调用,如果要改变类属性,必须通过类名.类属性的方式:
2. 类属性的一个用途举例
查看如下代码,假如类属性counter代表机器人的个数,每增加或删除一个机器人都可以方便的对总的机器人数进行修改:
class C: counter = 0 def __init__(self): type(self).counter += 1 def __del__(self): type(self).counter -= 1 if __name__ == "__main__": x = C() print("Number of instances: : " + str(C.counter)) y = C() print("Number of instances: : " + str(C.counter)) del x print("Number of instances: : " + str(C.counter)) del y print("Number of instances: : " + str(C.counter))
返回值如下:
Number of instances: : 1 Number of instances: : 2 Number of instances: : 1 Number of instances: : 0
注意在上述代码中出现了type(self),这个就等于类C。
参考链接:
[1] https://www.python-course.eu/python3_class_and_instance_attributes.php
[2] https://dzone.com/articles/python-class-attributes-vs-instance-attributes