структуры, похожие на список. У меня есть ветвления в зависимости от типа данных. Сначала проверял в тупую if type(var) == list ... . Но потом, когда я класс метода унаследовал от другого класса, то в метод вместо листа (и других коллекций) начали приходить wrapper-типы и условие перестало срабатывать. Хотелось бы подстраховаться от таких приколов
У списка есть метод append. У array-like должен быть такой метод?
if type(var) in (list, dict, set...)
Что вообще ты хочешь делать, если тебе не тот тип передали?
кидаю исключение. Просто в c_name помимо массивов может еще и строка лежать, поэтому и проверка А вот перебирать все list-like коллекции мне не очень хочется. Поэтому подумал, раз есть аннотация ArrayLike, то соответственно должен быть способ проверки
А почему функция может принимать разные типы?
нет, строка array-like у неё есть индексирование?- есть, всё
ну, ты сам придумываешь, что array-like — это Sequence, я хочу узнать, что под array-like подразумевает тс
эта функция используется в методе класса для либы. Понятия не имею, в какую структуру данных пользователь аргумент обернет. К тому же c_name может быть как набором строк так и одной строкой, поэтому приведение типов не получится
Убери возможность передавать строку, всегда жди Iterable[str]. В рантайме тип ен проверяй, поставь тайпхинт
Обсуждают сегодня