Python の名前付きタプルは、組み込みタプル データ型の拡張機能であり、タプルの要素に意味のある名前を付けることができます。言い換えれば、名前付きタプルは名前付き属性を持つタプルです。素敵じゃないですか?
これらはコレクション モジュールの一部であり、シンプルで不変の クラスをより簡単な方法で定義する方法を提供します。
ちょっと待って、授業?
はい、授業です。
名前付きタプルは本質的に不変クラスです。
これは魔法のような現象です。namedtuple を使用して名前付きタプルを作成すると、結果はタプル自体のインスタンスではなく、タプルを継承して動的に生成されたクラスになります。またまたカッコイイ!!
これがどのように機能するかを見てみましょう。
from collections import namedtuple P = namedtuple("Point", "x y")
P =namedtuple("Point", "x y") を実行すると、Point という名前の新しいクラス (namedtuple の最初の引数で指定されたとおり) が作成されます。
namedtuple 関数は、バックグラウンドで型を使用して、タプルを継承する Point という名前の新しいクラスを動的に作成します。この新しいクラスは変数 P.
に保存されます。クラスと同様に、型は type です。
> type(P) class 'type'
> class A: pass > type(A) class 'type'
名前付きタプルのインスタンスはどのような型ですか?
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
要約:
そして最後にもう 1 つ:
名前付きタプル変数 (P と呼ばれるもの) に、動的に作成されたクラスである型名 (Point と呼ばれるもの) と同じ名前を付けるのが非常に一般的です。
from collections import namedtuple Point = namedtuple("Point", "x y")
この 2 つの違いを明確にするために、別の名前を使用しました。
以上がPython の名前付きタプル: それらはどのような型ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。