跳至內容

用戶: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