• 13.6.5 实例属性 VS 类属性:


    13.6.5  实例属性  VS  类属性:
    
    
    我们已在13.4.1 节中描述了类数据属性,这里简要提一下,类属性仅是与类相关的数据值,和实例属性不同,
    
    类属性和实例无关。
    
    这些值像静态成员那样被引用,即使在多次实例化中调用类,它们的值都保持不变。
    
    
    不管如何,静态成员不会因为实例而改变他们的值,除非实例显示改变他们的值
    
    (实例属性与类属性的比较,类似于自动变量和静态变量,但这只是笼统的类推。
    
    
    类和实例都是名字空间,类是类属性的名字空间,实例则是实例属性的。
    
    
    关于类属性和实例属性,还有一些方面需要指出.你可采用类来访问类属性,如果实例
    
    
    没有同名的属性的话,你也可以用实例来访问。
    
    访问类属性:
    
    类属性可通过类或实例来访问。下面的示例中,类C在创建时,带上一个version属性,这样通过
    
    类对象来访问它是很自然的了,比如,C.version.
    
    当实例c被创建后,对实例c而言,访问c.version会失败,不过python首先会在实例中搜索version,
    
    然后是类,再就是继承树中的基类。
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class C(object): # define class 定义类
        pass
    print C
    print type(C)
    
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a4.py
    <class '__main__.C'>
    <type 'type'>
    
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class C(object): # define class 定义类
        pass
    print C
    print type(C)
    c=C()
    print c
    print type(c)
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/eeeee/a4.py
    <class '__main__.C'>
    <type 'type'>
    <__main__.C object at 0x02567E30>
    <class '__main__.C'>
    
    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    class C(object): # define class 定义类
        version = 1.2  # static member 静态成员
    print C
    print type(C)
    c=C()  # instantiation 实例化
    print c
    print type(c)
    print C.version # access via class 通过类来访问
    print  c.version # access via instance 通过实例来访问
    

  • 相关阅读:
    查找->静态查找表->顺序查找(顺序表)
    查找(总结篇)
    树和二叉树->其他(待完善)
    树和二叉树->最优二叉树
    树和二叉树->线索二叉树
    树和二叉树->遍历
    树和二叉树->相互转化
    树和二叉树->存储结构
    树和二叉树->基础知识
    P2921-[USACO08DEC]在农场万圣节Trick or Treat on the Farm
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349215.html
Copyright © 2020-2023  润新知