首页 > 代码库 > 【类不类二】Python的类变量与实例变量
【类不类二】Python的类变量与实例变量
在研究类的时候,难免会有很多疑问,C论坛和博客园高手如云(不知道是不是也美女如云),
搜到了这篇博文,是介绍Python的类变量和实例变量的 ! 刚好在下对self.***这种形式的实例变
量不是很理解,就拿来与诸君共享!
C博客的大伽: http://blog.csdn.net/xxkkff/article/details/4396895
上一篇【类不类2】: http://www.cnblogs.com/Ruby517/p/5709558.html
一般的类定义是写成这种形式
class <类名>: <语句>
不过现在我们更多是写成这种继承类的形式
class <类名>(父类名): <语句>
其实还有一种是多重继承的类,大家有兴趣可以看下:
脚本之家的介绍: http://www.jb51.net/article/42623.htm
------------------------------------------------------------------------------------------------
切入正题,在下斗胆把原文作者的代码改了一点点
【__init__()下面一般放的是 self.*** 这种形式的,是实例变量】
【类名下面,函数外面的变量是类变量, 可以是self.__class_.***,也可以是 "类名.***" 这种形式】
1 # coding: utf-8 2 3 # 这种写法,子类Test的首字母要大写,父类object不能大写 4 class Test(object): 5 6 count = 0 # 这个count啊,就叫做"类变量" 7 8 def __init__(self): 9 10 self.count = count # 这个self.count,就叫实例变量 11 # self.__class_ 用于获取对应的类本身的变量, 也就是类变量12 # 也可写成 Test.count 的形式 13 self.__class__.count += 1 14 15 a = Test(3)16 print a.count17 输出 318 19 print Test.count20 输出 121 22 b = Test(-1)23 print b.count24 输出 -125 26 print Test.count27 输出 2
从上面可知,类变量是所有类的实例(也就是对象)共有的,所以它是具有叠加性的,每次加1的结果都会传递给下一个对象
继续了解类,可参考:
【类不类3】: http://www.cnblogs.com/Ruby517/p/5724385.html
【类不类二】Python的类变量与实例变量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。