我遇到了 Python 3.12 的新的 override 装饰器,它看起来是一个非常好的实践。
我想知道是否有办法让它“强制”使用?也许有某种方法可以为其配置
mypy
?或者至少配置 linter 以显示警告。
from typing import override
class Base:
def log_status(self) -> None:
...
class Sub(Base):
@override # I would like to make it mandatory while overriding a method
def log_status(self) -> None:
...
explicit-override
。
将以下内容放入您的
pyproject.toml
中以启用它:
[tool.mypy]
enable_error_code = "explicit-override"
mypy.ini
和其他类型的配置文件 Mypy 读取,但这留给读者作为练习。
或者,您可以将
--enable-error-code explicit-override
传递给命令行工具或在文件中放置 配置注释:
(游乐场)
# mypy: enable-error-code=explicit-override
class Sub(Base):
# error: Method "..." is not using @override but is overriding a method in class "..."
def log_status(self) -> None: ...