Python 中为什么使用带引号的类型标注?
python 中加上引号的 typing hint
当使用 type hint 标注类型尚未完全定义时,python 允许使用单引号括起来的字符串形式。
例如,考虑一个 pydantic 模型:
class model: ...
在它的方法中,想要指定参数为 model 类型:
立即学习“Python免费学习笔记(深入)”;
def from_orm(obj: "Model") -> "Model": ...
此时,model 尚未完全定义。通过使用引号,python 延迟解析,直到代码实际执行时再确定类型。
为何使用引号?
与兼容低版本 python 无关。这是 python 3.7 引入的 pep 484 特性,允许使用字符串形式的类型标注,以便 未来确定类型。
未来确定类型
在引入 pep 563 之后,未来确定类型成为 python 的默认行为。这意味着无论类型标注是否使用引号,实际类型都首先解析为字符串形式。这避免了依赖顺序问题。
将来,from __future__ import annotations 模块将在 python 中启用此行为,而无需使用引号。
-
Python程序删除数组中的重复元素
数组是相同数据类型的元素的集合,数组中的每个元素都由一个索引值来标识。它是一种最简单的数据结构,其中每个数据元素只需使用...
Python
29秒前 0 -
使用Networxx模块的超链接诱导主题搜索(HITS)算法- Python
超链接诱导主题搜索(HITS)算法是一种用于网络链接分析的流行算法,特别是在搜索引擎排名和信息检索中。 HITS 通过分...
Python
1分钟前 0 -
使用索引列表在Python中查找元素的乘积
简介列表是Python中的一种数据类型,用于在单个变量中存储多个数字、字符串。我们可以借助索引来访问列表的元素。在Pyt...
Python
2分钟前 0 -
在Python中打印字符串的所有子序列
简介在字符串操作和算法设计领域,打印给定字符串的所有子序列的任务起着至关重要的作用。子序列是通过从原始字符串中选择零个或...
Python
2分钟前 1 -
使用Python从字符串的末尾删除给定的子字符串
Python 是一种全球使用的编程语言,开发人员出于不同的目的使用它。 Python 具有各种不同的应用程序,例如 We...
Python
3分钟前 0
- Python程序删除数组中的重复元素 29秒前
- 使用Networxx模块的超链接诱导主题搜索(HITS)算法- Python 1分钟前
- 使用索引列表在Python中查找元素的乘积 2分钟前
- 在Python中打印字符串的所有子序列 2分钟前
- 使用Python从字符串的末尾删除给定的子字符串 3分钟前
- 2020年适用于Linux程序员的10个最佳Python集成开发环境 4分钟前
- 获取字典中的第一个和最后一个元素的Python程序 4分钟前
- 在Python中漂亮地打印XML 5分钟前
- Python日志基础 - 简易指南 6分钟前
- 如何在Python中创建静态类数据和静态类方法? 6分钟前