Pertimbangkan potongan kode berikut:
from collections import namedtuple
point = namedtuple("Point", ("x:int", "y:int"))
Kode di atas hanyalah cara untuk menunjukkan apa yang saya coba capai. Saya ingin membuat namedtuple
dengan petunjuk tipe.
Apakah Anda tahu cara elegan untuk mencapai hasil seperti yang diinginkan?
python
python-3.x
type-hinting
namedtuple
python-dataclasses
Pavel Hanpari
sumber
sumber
Jawaban:
Sintaks yang lebih disukai untuk tupel bernama yang diketik sejak 3.6 adalah
Edit Memulai Python 3.7, pertimbangkan untuk menggunakan
dataclasses
(IDE Anda mungkin belum mendukungnya untuk pemeriksaan tipe statis):sumber
Kamu bisa memakai
typing.NamedTuple
Dari dokumen
Ini hanya ada di Python 3.5 dan seterusnya
sumber
GeoPoint = NamedTuple('GeoPoint', [('longitude', float), ('latitude', float)])
kemudian saya mencoba geo = GeoPoint (** data) di mana data adalah dict yang berisi kunci dan nilai yang diperlukandecimal.Decimal
, dan tidak ada cast to float yang terjadi; (tidak ada typerror baik :( :( jadi bagaimana inityping.NamedTuple
bekerja? Lihat intinya .github.com / andilabs / 15002176b2bda786b9037077fa06cc71