python类属性和实例属性

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

原文地址:https://www.cnblogs.com/yunxiaofei/p/11204231.html