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

1. 利用 iter内建属性

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

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

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

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
try:
    for v in obj:
        print v
except TypeError, e:
    print e

3. 检查实例是否是collections.Iterable子类

import collections
if isinstance(obj, collections.Iterable):
    print 'iterable'

你可能感兴趣的:(python中判断实例可迭代地几种方式)