Collection. Раньше я всегда юзал Iterable/Sequence/[Set | List | Tuple], а теперь в инструментарии появилось еще и промежуточное звено - CollectionCollection - это тот же Sequence, только без
__reversed__ и __getitem__. Т.е. если вам нужен тип, который поддерживает итерацию, проверку на in + len - то вот он:
from collections.abc import Collection
def func(data: Collection[int]) -> bool:
for i in data:
...
len(data)
return 1 in data
Раньше я для этих целей использовал
Sequence, но это было не совсем верно, т.к. Sequence более строгий тип и накладывает больше ограничений на входные значения, чем реально требуется функции. Так что у меня теперь новый любимый тип!А вообще - всем крайне рекомендую сверяться вот с этой табличкой при расстановке аннотаций. Во всяком случае, пока не запомните ее наизусть🌚
#программирование