07 Июл 2023
1 мин
807

Как в Python определить, является ли объект итерируемым

В программировании на Python часто возникает необходимость определить, является ли объект итерируемым. Итерируемыми объектами в Python являются те, через

Содержание

В программировании на Python часто возникает необходимость определить, является ли объект итерируемым. Итерируемыми объектами в Python являются те, через которые можно пройти, используя цикл for. К таким объектам относятся списки, строки, словари и другие.

Самым распространенным способом проверки объекта на итерируемость является использование встроенной функции hasattr(), которая принимает два аргумента: объект и имя атрибута, наличие которого проверяется.

is_iterable = hasattr(obj, '__iter__')

Если объект итерируемый, то он будет иметь метод __iter__. Однако, этот способ не всегда является надежным. В некоторых случаях объект может иметь метод __iter__, но при этом не быть итерируемым.

Более надежным способом является использование функции iter(), которая пытается вернуть итератор для объекта. Если объект не итерируемый, то будет сгенерировано исключение TypeError.

def is_iterable(obj):
    try:
        iter(obj)
        return True
    except TypeError:
        return False

Таким образом, для проверки объекта на итерируемость, можно использовать функцию iter(), которая более надежна, чем проверка наличия метода __iter__ с помощью функции hasattr().

Содержание

Добавить комментарий

Определи профессию по рисунку