Python 中的命名元組是內建元組資料類型的擴展,允許您為元組的元素賦予有意義的名稱。換句話說,命名元組是具有命名屬性的元組。是不是很酷?
它們是集合模組的一部分,提供了一種以更簡單的方式定義簡單、不可變的類別的方法。
等等,上課嗎?
是的,上課。
命名元組本質上是不可變的類別。
這就是發生的神奇之處:當您使用namedtuple建立命名元組時,結果不是元組本身的實例,而是繼承自元組的動態產生的類別。再說一遍,酷! !
讓我們看看這是如何運作的。
from collections import namedtuple P = namedtuple("Point", "x y")
當您執行 P = nametuple("Point", "x y") 時,您將建立一個名為 Point 的新類別(如namedtuple 的第一個參數所指定)。
namedtuple 函數在幕後使用 type 動態建立一個繼承自 tuple 的名為 Point 的新類別。這個新類別儲存在變數 P 中。
與類別一樣,類型就是型別。
> type(P) class 'type'
> class A: pass > type(A) class 'type'
namedtuple 的實例是什麼型別?
from collections import namedtuple P = namedtuple("Point", "x y") p = P(1,2) > print(type(p)) class '__main__.Point'
p 是 Point 類型的實例。但它也是一個元組:
> print(isinstance(p, tuple)) True
總結:
最後一件事:
將namedtuple變數(我們稱為P)命名為與類型名稱(我們稱為Point)相同的名稱是很常見的,動態建立的類別:
from collections import namedtuple Point = namedtuple("Point", "x y")
我使用了不同的名稱來明確兩者之間的差異。
以上是Python 中的命名元組:它們是什麼型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!