Речь идет об отсутствии typing.Range
.
В пакете typing
нет типа для range
, но в то же время мы видим typing.re.Match
, который является типом, ориентированным на пакет.typing.sequence
или typing.Iterable
является слишком полным.
Есть ли лучший способ проверить тип range
и только тип range
?Помимо использования:
range_instance.__class__ == range
update :
Чтобы было ясно, я имею в виду, что некоторые типы при наборе включают все элементы или аспекты чего-либо, например typeing.Iterable
(универсальный тип, это нормально)
С другой стороны, есть также очень специфические типы, такие как
typing.Generator
, typing.Tuple
, typing.Dict
,typing.re.Match
typing.AsyncContextManager
, ...
, но не
typing.Range
Факт 1: тип range
- это другой тип в Python (например,диапазон имеет дополнительную оптимизацию для проверки элементов, и иногда имеет смысл знать, имеете ли вы дело со списком или диапазоном)
Факт 2: модуль typing
, кажется, охватывает все аспекты типов,(смотрите импорт и логику, если сомневаетесь)
Зная это, я думаю, что typing.Range
отсутствует.
Разница между подсказками типов и проверкой типов здесь не имеет значения.