• 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);
  • 相关阅读:
    spring 实现测试解耦
    Java 反射实例 (二)
    Java 反射实例
    Thread.join()
    缓存输入/输出流
    文件的拷贝
    将键盘输入的数据保存到文件中:OutputStream
    InputStream中read方法各个参数的意义
    OutputStream
    InputStream中的主要的子类
  • 原文地址:https://www.cnblogs.com/juzib/p/12072014.html
Copyright © 2020-2023  润新知