User:Xyy23330121/Python/特殊属性
外观
Python 有一些特殊属性,这些特殊属性在使用 Python 创建各种内容时自动生成的。比如:
import math
print(math.__name__) #输出:math
a = 1
print(a.__class__) #输出:<class 'int'>
本章将记录这些特殊属性。
适用范围:类、函数、方法
我们在 函数注释 章节中已经使用过了 __doc__ 属性。该属性会自动存储对象的文档字符串。
适用范围:模块、类、函数、方法、描述器或生成器实例
存储了对象的名称。对于模块,我们将在之后 模块的名称 章节再讲解该属性的具体使用。
适用范围:模块、类、函数、方法、描述器或生成器实例
类似 __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__ 只保存了对象的名称。
适用范围:类、函数、方法
哪个模块定义了该对象,这个属性就保存哪个模块的名称。
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