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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值