在对对象类型检查时,有时需要保证对象可迭代,如何判断对象可迭代呢,可以使用下列方法:
string = 'abcdef'
alist = ['a', 'b', 'c', 'd', 'e', 'f']
aset = {'a', 'b', 'c', 'd', 'e', 'f'}
adict = {'a':1, 'b':2, 'c':3, 'd':4,'e':5, 'f':6}
方法1:
from collections import Iterable
for object in [string, alist, aset, adict]:
print isinstance(object, Iterable)
方法2:
(该方法使用时需要注意,在python2中str并没有__iter__属性,因此需要结合判断是否为str)
for object in [string, alist, aset, adict]:
print hasattr(object, '__iter__') or isinstance(object, str)
方法3:
for object in [string, alist, aset, adict]:
try:
iter(object)
print True
except:
print False
本文介绍了三种判断Python对象是否可迭代的方法,包括使用isinstance检查对象是否为Iterable、hasattr检查对象是否有__iter__属性及直接尝试调用iter函数。

765

被折叠的 条评论
为什么被折叠?



