挑战:
在 Python 中,当类型提示需要封闭类的实例作为参数并返回同一类的实例的方法时,您可能会遇到错误来自编辑器或代码完成的消息。此问题源于以下事实:类型提示时类可能未完全定义。
解决方案:
要解决此挑战,请考虑以下选项:
对于 Python 版本 3.11 和稍后,使用 from 键入 import Self 来注释您的方法,如下所示:
from typing import Self class Position: def __add__(self, other: Self) -> Self: ...
通过包含来启用注释的延迟评估from __future__ 在模块开头导入注释。这允许您使用类名称输入提示:
from __future__ import annotations class Position: def __add__(self, other: Position) -> Position: ...
class Position: def __add__(self, other: 'Position') -> 'Position': ...限制使用字符串时可以与代码完成一起使用,需要注意的是,并非所有 Python 版本都完全支持这种方法,并且可能会导致静态分析问题推荐方法为了获得最佳结果,建议在 Python 3.11 中使用 from 键入 import Self 或在 Python 3.7 中使用 from __future__ import 注解(如果可用)。这可确保正确处理类型提示并与最新的语言功能兼容。
以上是如何在 Python 中使用封闭类键入提示方法?的详细内容。更多信息请关注PHP中文网其他相关文章!