Python:特殊属性(合集)

B站影视 电影资讯 2025-09-07 00:03 1

摘要:除了大量控制对象行为的“特殊方法”,Python 还提供了一系列特殊属性,用于描述模块、函数、实例和类的元信息。

除了大量控制对象行为的“特殊方法”,Python 还提供了一系列特殊属性,用于描述模块、函数、实例和类的元信息。

这些属性通常以 __name__、__doc__、__dict__ 等形式出现,是自省、调试、反射乃至框架设计的基石。

Ⅰ. 模块的特殊属性

Module Special Attributes

模块对象在导入时由解释器创建,带有一系列预定义属性:

__name__:模块名称

__doc__:模块文档字符串

__file__:模块源文件路径(内建模块可能无此属性)

__package__:所属包名

__loader__:导入该模块的加载器对象

__spec__:模块的导入规范(ModuleSpec 对象)

__cached__:字节码缓存文件路径(.pyc)

__builtins__:内建命名空间引用

__all__:显式导出符号列表(供 from module import * 使用)

__path__:包模块特有,用于包内子模块搜索

详解请参阅:

Ⅱ. 函数的特殊属性

Function Special Attributes

函数对象由 Python 在定义时自动生成,具有描述签名、闭包和代码信息的属性。

func.__name__:函数名

func.__doc__:函数文档字符串

func.__module__:函数定义所在的模块名

func.__qualname__:函数的限定名(含类名/嵌套层级)

func.__defaults__:位置参数默认值元组

func.__kwdefaults__:关键字参数默认值字典

func.__annotations__:参数与返回值注解

func.__code__:函数的代码对象(字节码、变量名等)

func.__globals__:函数定义所在的全局命名空间

func.__closure__:闭包单元格元组(引用外部变量)

func.__dict__:函数对象的自定义属性字典

详解请参阅:

Ⅲ. 实例(对象)的特殊属性

Instance Special Attributes

实例是类的产物,运行时通常具有以下关键属性。

obj.__dict__:实例属性存储字典(若类定义了 __slots__ 可能不存在)

obj.__class__:实例所属类对象

obj.__doc__:文档字符串(默认继承自类)

obj.__module__:定义该实例所属类的模块名

obj.__weakref__ :保存对象的弱引用信息

详解请参阅:

Ⅳ. 类的特殊属性

Class Special Attributes

类本身是 type 的实例,作为“元对象”同样具有大量属性。

cls.__name__:类名

cls.__qualname__:类的限定名(含嵌套路径)

cls.__module__:类定义所在模块名

cls.__doc__:类文档字符串

cls.__bases__:基类元组

cls.__mro__:方法解析顺序(Method Resolution Order)

cls.__dict__:类的命名空间字典(存放方法和属性)

cls.__annotations__:类变量的类型注解字典

cls.__weakref__:支持对类对象的弱引用

cls.__slots__:若定义,限制实例属性集合、节省内存

详解请参阅:

小结

模块属性:提供名称、路径与导入机制信息。

函数属性:揭示签名、闭包和码对象。

实例属性:记录对象状态与其所属类。

类属性:反映继承结构、命名空间和弱引用机制。

特殊属性描述“对象是什么”,而特殊方法则定义“对象能做什么”。二者共同构成 Python 对象模型的核心。

“点赞有美意,赞赏是鼓励”

来源:优美教育

相关推荐