我喜欢Andrei Vajna的建议hasattr(var,'__iter__')
。请注意以下一些典型的Python类型的结果:
>>> hasattr("abc","__iter__")
False
>>> hasattr((0,),"__iter__")
True
>>> hasattr({},"__iter__")
True
>>> hasattr(set(),"__iter__")
True
这具有将字符串视为不可重复的额外优势-字符串是灰色区域,有时您希望将它们视为元素,而有时则将其视为字符序列。
请注意,在Python 3中,str
类型 确实 具有__iter__
属性,并且这不起作用:
>>> hasattr("abc", "__iter__")
True