Сообщение на веб-сайте Android не работает с extraheader

Duck typing
try:
    iterator = iter(theElement)
except TypeError:
    # not iterable
else:
    # iterable

# for obj in iterator:
#     pass

Проверка типа

Используйте базовые классы Абстрактные базовые классы . Они нуждаются хотя бы в Python 2.6 и работают только для классов нового стиля.

import collections

if isinstance(theElement, collections.Iterable):
    # iterable
else:
    # not iterable

Однако iter() является немного более надежным, как описано в документации :

Проверка isinstance(obj, Iterable) обнаруживает классы, зарегистрированные как Iterable или имеющие метод __iter__(), но не обнаруживает классы, которые повторяются с помощью метода __getitem__(). Единственным надежным способом определить, является ли объект итерируемым, является вызов iter(obj).

blockquote>
-8
задан Litisqe Kumar 25 September 2015 в 11:15
поделиться