Python类属性

类属性

  1. 可通过类名访问

  2. 如果实例没有定义同名的属性,则可以通过实例来访问

  3. 只有使用类引用来访问类属性时,才能更新它的值,如果通过实例访问类属性来访问的话,会产生一个实例属性覆盖类的属性,造成意外的后果

  4. 当通过一个实例访问变量时,其搜索顺序:先搜索实例空间,然后是类,然后是继承树中的基类


class student(object):

	foo = 100

if __name__ == '__main__':

	test = student()

	print "student.foo:",student.foo

	print "test.foo:",test.foo


	test.foo = 50 

	print "\n","set test.foo"

	print "student.foo:",student.foo

	print "test.foo:",test.foo			#此时test的foo属性覆盖了类student的属性,访问的是foo的foo属性


	del test.foo

	print "\n","unset test.foo"

	print "student.foo:",student.foo

	print "test.foo:",test.foo			#因为test.foo被del掉,访问的就是类的数据foo


	test.foo += 1

	print "student.foo:",student.foo

	print "test.foo:",test.foo 			#此时实例test创建了一个属性foo,其值为类属性foo在加1,

							#相当于test.foo = student.foo + 1 
# student.foo: 100

# test.foo: 100

# set test.foo

# student.foo: 100

# test.foo: 50

# unset test.foo

# student.foo: 100

# test.foo: 100

# student.foo: 100

# test.foo: 101
posted @ 2014-12-29 19:56  zhainankl  阅读(216)  评论(0)    收藏  举报