2015-12-14 20 views
28

xem xét sau đoạn mã:Loại gợi ý trong namedtuple

from collections import namedtuple 
point = namedtuple("Point", ("x:int", "y:int")) 

Bộ luật nói trên chỉ là một cách để chứng minh như những gì tôi đang cố gắng để đạt được. Tôi muốn thực hiện namedtuple với các gợi ý về loại.

Bạn có biết cách thanh lịch nào để đạt được kết quả như dự định không?

Trả lời

44

Bạn có thể sử dụng typing.NamedTuple

Từ các tài liệu

phiên bản Typed của namedtuple.

>>> import typing 
>>> Point = typing.NamedTuple("Point", [('x', int), ('y', int)]) 

Đây là hiện nay chỉ bằng Python 3.5 trở đi

+0

tôi tuyên bố nó như thế này: 'GeoPoint = NamedTuple ('GeoPoint', [('kinh độ', float), ('vĩ độ', float)]) 'sau đó tôi thử geo = GeoPoint (** dữ liệu) trong đó dữ liệu là dict chứa các khóa và giá trị cần thiết là' decimal.Decimal', và không có cast để float xảy ra; (không có typerror hoặc :(:(vậy làm thế nào cái này ' gõ.NamedTuple' hoạt động? xem https://gist.github.com/andilabs/15002176b2bda786b9037077fa06cc71 – andi

+4

@andi đánh máy không thực thi hoặc truyền biến, afaik. –