在Python中如何直达搜一个对象是可迭代的?

优质
小牛编辑
139浏览
2023-12-01
rankvoteurl
7534388324url

在Python中如何直达搜一个对象是可迭代的?

有没有一个isiterable的方法?我找到的解决方法:

hasattr(myObj, '__iter__')

但是我不知道这是不是最好的.


鸭子类型

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

# for obj in iterator:
#     pass

类型检查

抽象基类.至少Python2.6以上而且只针对新式类.

import collections

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