使用者: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