为了账号安全,请及时绑定邮箱和手机立即绑定

mypy 未检测到未初始化的属性

mypy 未检测到未初始化的属性

幕布斯7119047 2021-11-30 16:17:20
此代码使用mypy的默认调用进行检查:class A:  myattr: strclass B(A):  otherattr: str但两者A().myattr并B().myattr引发属性错误:AttributeError: 'A' object has no attribute 'myattr'有没有办法让mypy报告这个?这是 Python 3.7.2,mypy 0.670
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

我认为目前的答案是否定的。

有一些关于在此处添加此功能的讨论:

https://github.com/python/mypy/issues/4019

不过最近好像没什么更新。如果您有一个强大的用例来做这件事,也许值得在那里发表评论,以及您希望看到什么错误,即您希望错误是您正在访问一个已初始化的变量还是该变量未在类 init 或 new 构造函数?


查看完整回答
反对 回复 2021-11-30
?
慕神8447489

TA贡献1780条经验 获得超1个赞

我发现我可以通过定义一个Protocol而不是一个常规的超类来获得大部分我想要的(在我的实际用例中):mypy确实检测在那里定义的未初始化的属性。


查看完整回答
反对 回复 2021-11-30
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信