python中类属性和类实例的属性的区别
以下内容转载自javaeye.com的作者bluecrystal
环境说明:以下python代码均在python2.5下通过。
最近看到一些人在讨论python中类属性和类的实例的属性,我也来谈谈我个人对这个问题的看法,供pyer参考。
首先我们来简单的定义一个python的类:
Python代码
# coding: utf-8
class
AAA():
aaa = 10
# 情形1
obj1 = AAA()
obj2 = AAA()
obj1.aaa, obj2.aaa, AAA.aaa
# 情形2
obj1.aaa += 2
obj1.aaa, obj2.aaa, AAA.aaa
# 情形3
AAA.aaa += 3
obj1.aaa, obj2.aaa, AAA.aaa
# coding: utf-8
class AAA():
aaa = 10
# 情形1
obj1 = AAA()
obj2 = AAA()
print obj1.aaa, obj2.aaa, AAA.aaa
# 情形2
obj1.aaa += 2
print obj1.aaa, obj2.aaa, AAA.aaa
# 情形3
AAA.aaa += 3
print obj1.aaa, obj2.aaa, AAA.aaa
在上面的代码,类AAA定义了一个属性aaa,py的类成员变量不像java或者c++那样有访问限定符,像aaa这样的属性定义应该理解为类属性定义,
即该定义为所有类AAA的实例所共享,访问该属性,可通过AAA.aaa的方式来访问,是通过类名来引用,但是如果通过类AAA的实例来引用aaa属性,
又会是怎样呢,我们来看情形1.
对于情形1,我相信绝大多数人都会正确的说出结果,那就是:
10 10 10
对于上面这个结果,没有任何悬念,通过两个AAA的实例,以及通过AAA类名引用aaa属性值,都是同样的答案。
那在情形2中,应该是什么结果呢,我相信大多数人还是会说出正确的结果:
12 10 10
在上面这个结果中,一旦执行了obj1.aaa +=
2,也就意味着obj1这个实例有了个实�
相关文档:
Chapter 1
Python and XML
Python and XML are two very different animals, each with a rich
history. Python is a full-scale programming language that has grown
from scripting world roots in a very organic way, through the vision
and guidance of Python's inventor, Guido van Rossum. Guido continue ......
Python的字典操作
Python提供了多种应用于字典的操作。因为字典为容器,内建len函数可以将字典当作单一参数使用听切返回字典对象中项目(键/值对)的数目。
字典会员
在Python2.2以及后面版本,D中的k运算符检测是否对象k是字典D中的键。如果是返回True如果不是返回False。相似的,
索引一个字典
字典D中的值 ......
中文简介
Python (发音:[ 'paiθ(?)n; (US) 'paiθ?n ]n.蟒蛇,巨蛇 ),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。它的名字来源于一个喜剧,也许最初设 ......
作者:taowen, billrice
http://www.cnblogs.com/taowen/articles/11239.html
Lesson 1 准备好学习Python的环境
下载的地址是:
www.python.org
为了大家的方便,我在校内作了copy:
http://10.1.204.2/tool/compiler&IDE/Python-2.3.2-1.exe
linux版本的我就不说了,因为如果你能够使用linux并安装好说明你可以 ......
SleekEngine
随着计算机硬件的快速发展,10年前因为速度问题而被诟病的Java现在成了计算机流言语言中的老大,但是它却仍被认为复杂笨重,近几年来动态语
言却有后来赶上的趋势,掌握一门动态语言成了程序员需要考虑的事宜。 近期接触了几种流行的动态语言Python, Ruby,
Groovy,它们相比静态语言Java/C++来说,大� ......