首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"E721:不要比较类型,请使用isinstance()“错误

"E721:不要比较类型,请使用isinstance()“错误
EN

Stack Overflow用户
提问于 2018-09-18 21:49:51
回答 1查看 1.9K关注 0票数 9

python PEP 8 linter不喜欢这样:

代码语言:javascript
复制
assert type(a) == type(b)

它告诉我使用"isinstance()“代替。但是要使用isinstance,我必须做一些类似的事情

代码语言:javascript
复制
assert isinstance(a, type(b)) and isinstance(b, type(a))

这似乎要难得多,我也不太明白。

林特在某种程度上是我看不到的智慧吗?还是我聪明到了林特看不见的程度?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-18 22:08:32

从评论中添加的上下文:

根据我的程序逻辑,此时代码中应该有type(a) == type(b),我只想断言这一点,以确保一切顺利运行。

在这种情况下,您应该忽略linter,因为它没有给您任何有用的建议。E721的目的是通过类型检查提醒人们注意问题,例如:

代码语言:javascript
复制
if type(a) == A:
    ...

上面的示例可能是意外地破坏了逻辑流,因为忽略了aA子类的一个实例的可能性。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52395064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档