首页 > 编程语言 > 详细

python类属性和实例属性

时间:2019-07-17 23:20:07      阅读:101      评论:0      收藏:0      [点我收藏+]

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

python类属性和实例属性

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!