python PEP 8 linter 不喜欢这样:
assert type(a) == type(b)
Run Code Online (Sandbox Code Playgroud)
它告诉我改用“isinstance()”。但是要使用isinstance
我必须做类似的事情
assert isinstance(a, type(b)) and isinstance(b, type(a))
Run Code Online (Sandbox Code Playgroud)
这似乎更笨拙,我真的不明白这一点。
linter 是否以某种我看不到的方式明智?或者我在某些方面是明智的,linter 看不到?
从评论中添加的上下文:
根据我的程序逻辑,
type(a) == type(b)
在代码中应该有这一点,我只想断言,看看一切都运行顺利
在这种情况下,您应该忽略 linter,因为它没有暗示任何对您有用的东西。E271 旨在通过类型检查警告人们有关问题,例如:
if type(a) == A:
...
Run Code Online (Sandbox Code Playgroud)
上面的例子可能会意外地干扰逻辑流,因为忽略了考虑a
是 的子类的实例的可能性A
。
归档时间: |
|
查看次数: |
988 次 |
最近记录: |