Как обозначить тип аргумента функции "любая последовательность"?

Есть функция:

def func(a: tuple):
    pass

Мне нужно, чтобы аргумент a принимал любую стандартную последовательность (tuple, list, set). Как указать, что тип аргумента - любая последовательность (в примере выше указано, что аргумент может быть только кортежем). Я понимаю, что можно и не указывать, но мне нужно это указать, чтобы позже не путаться в коде. Спасибо за конструктивные ответы.


Ответы (1 шт):

Автор решения: insolor

Если нужны только перечисленные типы, то делайте Union из трех перечисленных типов:

from typing import Union


def func(a: Union[tuple, list, set]):
    pass

Если допустимы любые типы, которые поддерживают итерацию (в том числе и строки и генераторы/итераторы), то можно использовать Iterable:

from typing import Iterable


def func(a: Iterable):
    pass
→ Ссылка