Python 类变量和实例变量

本文详细解析了Python中类变量(即静态变量)与实例变量的区别及使用方式,并通过具体示例展示了如何定义和使用这两种变量。文章还强调了Python中并无常量的概念,所有值均可被修改。

类变量紧接在类名后面定义,相当于java和c++的static变量

实例变量在__init__()方法中定义,相当于java和c++的普通变量

在 Java 中,静态变量 (在 Python 中叫类属性) 和实例变量 (在 Python 中叫数据属性) 两者都是紧跟在类定义之后定义的 ;在 Python 中,只有类属性可以定义在这里,数据属性定义在 __init__ 方法中。

类属性可以作为类级别的常量来使用 (这就是为什么我们在 MP3FileInfo 中使用它们),但是它们不是真正的常量。你也可以修改它们。

在 Python 中没有常量。如果你试图努力的话什么都可以改变。这一点满足 Python 的核心原则之一:坏的行为应该被克服而不是被取缔。如果你真正想改变 None 的值,也可以做到,但当无法调试的时候别来找我。

 

>>> class test(object):
	count = 0   # 类变量
	def __init__(self, c):
	    self.count = c    # 实例变量
            self.__class__.count = self.__class__.count + 1

		
>>> a = test(3)
>>> a.count
3
>>> test.count
1
>>> b = test(-1)
>>> b.count
-1
>>> test.count
2
>>> 

 

参考了: http://www.cnblogs.com/youxin/archive/2013/05/17/3083468.html

转载于:https://www.cnblogs.com/ant-colonies/p/6720885.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值