OOP:静态成员变量

面向对象之静态成员变量

>>> class ClassName:
...     """docstring for ClassName"""
...     arg=0
...     def __init__(self, arg):
...         self.arg = arg


>>> obj = ClassName(2)
>>> print(obj.arg)
结果2
>>> print(ClassName.arg)
结果0


说明,通过 Object.var 和ClassName.var
访问的并不是同一个数据。上例中初始化函数改变的是self.arg这个变量,self就相当于Object
。arg和self.arg本身并不是一个变量。在Python的成员函数中访问arg的正确形式应该是ClassName.arg 。

>>> class ClassName:
...     """docstring for ClassName"""
...     arg=0
...     def __init__(self, arg):
...         ClassName.arg = arg
... 


>>> obj = ClassName(2)
>>> print(obj.arg)
结果2
>>> print(ClassName.arg)
结果2
>>> class ClassName:
...     """docstring for ClassName"""
...     COUNT=0
...     def __init__(self, arg):
...         self.arg = arg
...         ClassName.COUNT+=1
... 


>>> obj1 = ClassName(1)
>>> obj2 = ClassName(2)
>>> obj3 = ClassName(3)
>>> obj4 = ClassName(4)
>>> print(ClassName.COUNT)
4

通过静态成员变量统计引用类的次数

发布了34 篇原创文章 · 获赞 2 · 访问量 2897
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览