特殊属性

转载须注明出处:简书@Orca_J35

当前的实现为部分对象类型添加了一些特殊的只读属性,但其中的部分属性不会出现在内置函数 dir() 返回的列表中。

  • object.__dict__

    A dictionary or other mapping object used to store an object’s (writable) attributes.

  • instance.__class__

    类实例所属的类,可理解为当前实例的模板

    >>> type('whale') # 字符串是str类的实例
    <class 'str'>
    >>> type(str) # str类是type类的实例
    <class 'type'>
    >>> type(type) # type类是type类的实例
    <class 'type'>
    
  • class.__bases__

    类对象的基类构成的元组,只包含直接基类,并不是继承链上的所有基类

    >>> bool.__bases__
    (<class 'int'>,)
    >>> int.__bases__
    (<class 'object'>,)
    
  • definition.__name__

    The name of the class, function, method, descriptor, or generator instance.

  • definition.__qualname__

    The qualified name of the class, function, method, descriptor, or generator instance.

    New in version 3.3.

    >>> class C:
        class D:
            def meth(self):
                pass
    
            
    
    >>> C.D.meth.__qualname__
    'C.D.meth'
    >>> C.D.meth.__name__
    'meth'
    
  • class.__mro__

    该属性用于存储 MRO 元组,以便在方法解析期间提供基类排序。该属性是动态的,每当继承层次更新时,该属性都可能发生改变。

    tips: 旧式类中没有该属性

  • class.mro()

    通过元类(metaclass)可以覆盖此方法,以自定义类实例的方法解析顺序。该方法会在程序初始化时调用,其结果存储在 __mro__ 中。

    tips: 旧式类中没有该属性

  • class.__subclasses__()

    Each class keeps a list of weak references to its immediate subclasses. This method returns a list of all those references still alive. Example:

    >>> int.__subclasses__()
    [<class 'bool'>]
    
赞赏.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容