python 类属性与实例属性

#__author__ = 'juzi_juzi'

#类属性与实例属性
#1、无法通过类访问实例属性;
#2、类属性归类所所有,但是所有实例都可访问;
#3、如果存在相同名称的类属性与实例属性,实例访问的时候会优先使用实例属性,实例找不到该属性再找类属性:
#4、实例修改了类属性值,但原类属性对应的值仍存在;


class Test():
    count = 3 # count 为类属性;
    def __init__(self,name,age):
        self.name = name  #name ,age 为实例属性;
        self.age = age

# print(Test.name) #1、无法通过类访问实例属性,AttributeError: type object 'Test' has no attribute 'name'
t = Test('zhangsan',16)
print(t.count) #2、实例属性可访问类属性;

t.count = 1  # 用实例绑定count 属性;
print(t.count) #1 打印出实例绑定的时候设置的值;
print(Test.count) #3 实例虽然绑定了属性count ,但类的count 属性并未消失;
Test.count=4

t1 = Test('lisi','')
print(t1.name) #新的实例的属性值为新设定的值,与其余的实例没有关系;
print(t1.count) # 新的实例的count 属性不存在,所以会去寻找类属性的,类属性的值存在,所以取类属性的值;
print(Test.count) #4 这里的4 是因为上面的类属性修改所导致(Test.count=4);
原文地址:https://www.cnblogs.com/juzib/p/12072014.html