Python 3.5.1 isinstance失败了Iterable的列表和子类

时间:2017-10-26 16:30:26

标签: python python-3.x

使用第三方库我在Python3版本之间遇到了奇怪的行为。 以下代码

from typing import Iterable
class Subiter(Iterable):
    def __init__(self):
        pass
print(isinstance([], Subiter))

在Python 3.5.1中返回True,在Python 3.5.3中返回False(在3.5.2中未测试)。它可能会导致严重的错误,因为以后可以获取Subiter类的属性并获取AttributeError。我在版本之间搜索更改日志,但无法找到相关问题或PEP(一个候选人是bpo-24635,但似乎不同)。如果真的是这个错误,任何人都能指出正确的问题吗?只有使用额外的条件检查才能避免这种情况吗?感谢

UPD:@ekhumoro确认它在3.5.2中返回False,因此 应该在3.5.2中。发行说明

0 个答案:

没有答案