首页 > 后端开发 > Python教程 > 如何在 Python 中使用封闭类键入提示方法?

如何在 Python 中使用封闭类键入提示方法?

Susan Sarandon
发布: 2024-12-31 06:41:17
原创
138 人浏览过

How Do I Type Hint a Method Using the Enclosing Class in Python?

如何使用封闭类的类型类型提示方法?

挑战:

在 Python 中,当类型提示需要封闭类的实例作为参数并返回同一类的实例的方法时,您可能会遇到错误来自编辑器或代码完成的消息。此问题源于以下事实:类型提示时类可能未完全定义。

解决方案:

要解决此挑战,请考虑以下选项:

Python 3.11 with from waiting import Self

对于 Python 版本 3.11 和稍后,使用 from 键入 import Self 来注释您的方法,如下所示:

from typing import Self

class Position:
    def __add__(self, other: Self) -> Self:
        ...
登录后复制

Python 3.7 with from future 导入注释

通过包含来启用注释的延迟评估from __future__ 在模块开头导入注释。这允许您使用类名称输入提示:

from __future__ import annotations

class Position:
    def __add__(self, other: Position) -> Position:
        ...
登录后复制

Python

3.7:使用字符串

对于 3.7 以下的 Python 版本,使用字符串来表示类型提示中的封闭类:
class Position:
    def __add__(self, other: 'Position') -> 'Position':
        ...
登录后复制

限制

使用字符串时可以与代码完成一起使用,需要注意的是,并非所有 Python 版本都完全支持这种方法,并且可能会导致静态分析问题

推荐方法

为了获得最佳结果,建议在 Python 3.11 中使用 from 键入 import Self 或在 Python 3.7 中使用 from __future__ import 注解(如果可用)。这可确保正确处理类型提示并与最新的语言功能兼容。

以上是如何在 Python 中使用封闭类键入提示方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板