我目前正在使用try/except块,以使特定变量在可迭代时作为可迭代对象处理,但在不可迭代时以不同的方式进行处理,尽管这种方式是正确的。我的问题是TypeException可能会因为其他原因而被抛出,而不仅仅是尝试使用非可迭代对象进行迭代。我的检查是使用与TypeException关联的消息来确保这是原因,而不是像不支持的操作数之类的东西。但是作为异常的一部分的消息已经被弃用了。那么,我该如何检查我的TypeException的原因呢?为了完整起见,我使用的代码与此相当相似:
try:
deref = [orig[x].value.flatten() for x in y]
except TypeError as ex:
if "object is not iterable" in ex.message:
x = y
deref = [orig[x].value.flatten()]
else:
raise
__iter__
方法。 - user2357112__iter__
不是类迭代的唯一方式。 - jpp