rank vote url
75 343 88 324 url

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

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

  1. hasattr(myObj, '__iter__')

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


鸭子类型

  1. try:
  2. iterator = iter(theElement)
  3. except TypeError:
  4. # not iterable
  5. else:
  6. # iterable
  7. # for obj in iterator:
  8. # pass

类型检查

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

  1. import collections
  2. if isinstance(theElement, collections.Iterable):
  3. # iterable
  4. else:
  5. # not iterable

原文: https://taizilongxu.gitbooks.io/stackoverflow-about-python/content/75/README.html