Подсказки типов Python с литералами

Советы по использованию типов Python с примерами

PYTHON PROGRAMMING

Более мощно, чем кажется: использование typing.Literal для создания буквальных типов

typing.Literal создает тип с выбранными вариантами. Фото: Caleb Jones на Unsplash

Я признаюсь, что я не всегда был поклонником typing.Literal, формы создания буквальных типов в Python. Фактически, я не только недооценивал буквальные типы, но полностью игнорировал их, отказываясь использовать их вообще. По некоторой причине, которая остается мне неясной даже сегодня, я не мог найти в буквальных типах много практической ценности.

Как я ошибался. Я был слеп к силе этого простого инструмента, и мой код страдал от этого. Если вы игнорировали буквальные типы, как и я, я настоятельно рекомендую вам прочитать эту статью. Я надеюсь убедить вас в том, что, несмотря на свою простоту, typing.Literal может быть очень полезным инструментом в вашем арсенале для программирования на Python.

Даже если вы уже узнали ценность буквальных типов, не переставайте читать. Хотя мы не будем углубляться во все тонкости typing.Literal, эта статья предоставит более полное введение, чем официальная документация Python, не углубляясь в детали, как PEP 586.

Буквальные типы настолько прямолинейны, что они могут сделать код более ясным и читаемым, чем код без них. Эта простота является их сильной стороной и в то же время их слабостью typing.Literal, поскольку он не предлагает никаких дополнительных возможностей. Однако я покажу вам, как реализовать дополнительную функциональность самостоятельно.

Целью этой статьи является введение typing.Literal и обсуждение его ценности при программировании на Python. По пути мы исследуем, когда следует использовать typing.Literal, а также, что не менее важно, когда не следует.

Буквальные типы

Буквальные типы были введены в систему типизации Python с помощью PEP 586. Этот PEP представляет собой всестороннее исследование предложения о буквальных типах, являясь богатым источником информации на эту тему. В отличие от этого, официальная документация для типа typing.Literal является преднамеренно краткой, отражая его прямолинейную природу. Эта статья сокращает эту разницу между этими двумя ресурсами, предоставляя фундаментальную информацию о буквальных типах, а также глубже вдаваясь в детали, которые я считаю важными для обсуждаемых случаев использования.