我能想到
二
确定对象是否为序列的方法:
-
hasattr(object, '__iter__')
.
-
以及是否打电话
iter(object)
提出
TypeError
.
因为它是最蟒蛇
请求宽恕
比去
请求许可
,我会使用第二个习语,尽管我认为它更难看(另外,一旦您发现
类型错误
若要确定对象不是序列,则会产生不需要的“双异常”堆栈跟踪。
最后,检查对象是否定义了
__iter__
方法足够详尽以确定对象是否为序列?(例如,在较旧版本的Python中,
str
没有定义
__iter__
方法;我还听说有些对象还可以简单地定义和使用
__getitem__
没有定义
__iter__
就像一个序列)或者
__iter__
合同
一个序列?