python中判断实例可迭代地几种方式

1. 利用 __iter__内建属性spa

if hasattr(obj, '__iter__') :
    print 'iterable'

这种方法不能检测字符串,如:hasattr('', '__iter__')返回False。code

2.  假设obj是iterable的,若是不是的话,就抛出异常blog

try:
    for v in obj:
        print v
except TypeError, e:
    print e

3. 检查实例是不是collections.Iterable子类字符串

import collections
if isinstance(obj, collections.Iterable):
    print 'iterable'
相关文章
相关标签/搜索