跳转到内容

用户:Xyy23330121/Python/特殊属性

来自维基学院


Python 有一些特殊属性,这些特殊属性在使用 Python 创建各种内容时自动生成的。比如:

import math
print(math.__name__) #输出:math


a = 1
print(a.__class__)   #输出:<class 'int'>

本章将记录这些特殊属性。

通用属性

[编辑 | 编辑源代码]

__doc__ 属性

[编辑 | 编辑源代码]

适用范围:类、函数、方法

我们在 函数注释 章节中已经使用过了 __doc__ 属性。该属性会自动存储对象的文档字符串。

__name__ 属性

[编辑 | 编辑源代码]

适用范围:模块、类、函数、方法、描述器或生成器实例

存储了对象的名称。对于模块,我们将在之后 模块的名称 章节再讲解该属性的具体使用。

__qualname__ 属性

[编辑 | 编辑源代码]

适用范围:模块、类、函数、方法、描述器或生成器实例

类似 __name__ 属性。但该属性还保存了该对象的路径,比如:

class A:
    class B:
        def c(self): pass

obj = A()
print(obj.B.c.__name__)      #输出:c
print(obj.B.c.__qualname__)  #输出:A.B.c

可以看出,__qualname__ 完整地保存了对象的路径,而 __name__ 只保存了对象的名称。

__module__ 属性

[编辑 | 编辑源代码]

适用范围:类、函数、方法

哪个模块定义了该对象,这个属性就保存哪个模块的名称。

__type_params__ 属性

[编辑 | 编辑源代码]

The type parameters of generic classes, functions, and type aliases. For classes and functions that are not generic, this will be an empty tuple.

其它属性

[编辑 | 编辑源代码]

https://docs.python.org/zh-cn/3/reference/datamodel.html#special-attributes

https://docs.python.org/zh-cn/3/reference/datamodel.html#user-defined-functions

https://docs.python.org/zh-cn/3/reference/datamodel.html#id4