Рассмотрим следующий фрагмент кода:
from collections import namedtuple
point = namedtuple("Point", ("x:int", "y:int"))
Приведенный выше код - это всего лишь способ продемонстрировать, чего я пытаюсь достичь. Я хотел бы сделать namedtuple
с подсказками типа.
Знаете ли вы какой-нибудь изящный способ добиться желаемого результата?
python
python-3.x
type-hinting
namedtuple
python-dataclasses
Павел Ханпарь
источник
источник
Ответы:
Предпочтительный синтаксис для типизированного именованного кортежа с версии 3.6:
Редактировать Начиная с Python 3.7, рассмотрите возможность использования
dataclasses
(ваша IDE может еще не поддерживать их для проверки статического типа):источник
Ты можешь использовать
typing.NamedTuple
Из документов
Это присутствует только в Python 3.5 и новее.
источник
GeoPoint = NamedTuple('GeoPoint', [('longitude', float), ('latitude', float)])
затем я пробую geo = GeoPoint (** data), где data - это dict, содержащий необходимые ключи и значенияdecimal.Decimal
, и никакого преобразования в float не происходит; (тоже нет typerror :( :( так как этоtyping.NamedTuple
работает? См. Суть .github.com / andilabs / 15002176b2bda786b9037077fa06cc71