![python 中 `type[\'model\']` 的加引号类型提示是怎么回事?](https://img.php.cn/upload/article/001/246/273/173007901732937.jpg)
python 加引号的 typing hint 解析
在 pydantic 中,你会发现类似 Type['Model'] 这样的类型提示,其中 Model 用引号括起来。这可能会让人困惑,因为似乎 Model 已经变成了一个字符串。
原理
出现在引号中的类型提示通常代表尚未完全定义的类型。在使用这些类型之前必须先对其进行定义。例如,Model 类需要在方法的类型提示中使用,但它可能在定义方法时尚未完全定义。因此,就使用字符串 "Model" 来表示尚未定义的类型。
立即学习“Python免费学习笔记(深入)”;
PEP 规定
[PEP 563](https://peps.python.org/pep-0563/) 解释了此行为:
<blockquote>当一个类型提示包含尚未定义的名称时,该定义可以用字符串字面量表示,以便稍后解析。</blockquote>
兼容性
加引号的类型提示最初是为了兼容 Python 3.6 及以下版本而引入的,因为这些版本不支持解析尚未定义的类型。不过,根据 PEP 563,未来所有类型提示都将以字符串形式表示,并在需要时延迟计算。
消除引号
在 Python 3.7 及更高版本中,可以通过 from __future__ import annotations 提前启用 PEP 563 的功能,从而消除引号。启用后,Type['Model'] 可以直接写成 Model,而无需加引号。
以上就是Python 中 `Type['Model']` 的加引号类型提示是怎么回事?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号