Rumah > pembangunan bahagian belakang > Tutorial Python > Dinamakan Tuples dalam Python: apakah jenisnya?

Dinamakan Tuples dalam Python: apakah jenisnya?

DDD
Lepaskan: 2024-11-23 05:31:24
asal
846 orang telah melayarinya

Named Tuples in Python: what type are they?

Tuple bernama dalam Python ialah lanjutan daripada jenis data tupel terbina dalam, membolehkan anda memberikan nama yang bermakna kepada elemen tupel. Dalam erti kata lain, tupel bernama adalah tupel dengan atribut bernama. Hebat kan?

Ia adalah sebahagian daripada modul koleksi dan menyediakan cara untuk mentakrifkan kelasyang ringkas dan tidak boleh diubah dengan cara yang lebih mudah.

Tunggu apa, kelas?
Ya, kelas.

Tuple bernama pada asasnya ialah kelas yang tidak berubah.

Inilah keajaiban yang berlaku: apabila anda mencipta tuple bernama menggunakan namedtuple, hasilnya bukanlah contoh tuple itu sendiri, sebaliknya kelas yang dijana secara dinamik yang mewarisi daripada tuple. Sekali lagi, hebat!!

Mari kita lihat cara ini berfungsi.

from collections import namedtuple 

P = namedtuple("Point", "x y")
Salin selepas log masuk

Apabila anda menjalankan P = namedtuple("Point", "x y"), anda sedang mencipta kelas baharu bernama Point (seperti yang dinyatakan dalam argumen pertama untuk namedtuple).

Fungsi namedtuple menggunakan jenis di sebalik tabir untuk mencipta kelas baharu bernama Point yang diwarisi daripada tupel secara dinamik. Kelas baharu ini disimpan dalam pembolehubah P.

Dan seperti kelas, jenisnya adalah jenis.

> type(P)
class 'type'
Salin selepas log masuk
> class A:
    pass

> type(A)
class 'type'
Salin selepas log masuk

Dan apakah jenis contoh namatuple?

from collections import namedtuple 

P = namedtuple("Point", "x y")
p = P(1,2)

> print(type(p)) 
class '__main__.Point'

Salin selepas log masuk

p ialah tika jenis Point. Tetapi ia juga tuple:

> print(isinstance(p, tuple))
True

Salin selepas log masuk

Ringkasnya:

  • P ialah kelas yang dijana secara dinamik oleh namedtuple.
  • Instance P ialah objek jenis Point yang juga subkelas tupel.

Dan satu perkara terakhir:

Adalah perkara biasa untuk menamakan pembolehubah bernamatuple (apa yang kami panggil P) dengan nama yang sama dengan nama jenis (apa yang kami panggil Point), kelas yang dicipta secara dinamik:

from collections import namedtuple 

Point = namedtuple("Point", "x y")
Salin selepas log masuk

Saya menggunakan nama yang berbeza untuk menjelaskan perbezaan antara keduanya.

Atas ialah kandungan terperinci Dinamakan Tuples dalam Python: apakah jenisnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan