Python typing 的使用总结
1. 类型提示(Type Hints):Python 3.5引入了类型提示,这是一种新的语法特性,允许在函数声明中指定参数和返回值的预期类型。这些类型注解对Python解释器没有任何影响,但是可以被类型检查器、IDE、linter等工具用来捕获类型错误。
def greet(name: str) -> str: return 'Hello, ' + name
2. 内置类型:typing模块包含了所有Python内置类型的别名,如List、Dict、Tuple等。
from typing import List, Dict def count_words(text: str) -> Dict[str, int]: ...
3. 泛型:可以使用typing模块定义泛型类型,例如List[int]表示整数列表。
from typing import List def squares(nums: List[int]) -> List[int]: return [num ** 2 for num in nums]
4. 可选类型:Optional类型表示值可以是指定的类型,也可以是None。
from typing import Optional def find_user(user_id: int) -> Optional[User]: ...
5. 字面量类型:Literal类型用于表示变量的值只能是特定的几个字面量中的一个。
from typing import Literal def get_status(status: Literal['connected', 'disconnected']): ...
6. 类型别名:可以使用类型别名为复杂的类型注解创建简短的名称。
from typing import Dict, Any JSON = Dict[str, Any] def parse(json: JSON) -> JSON: ...
7. 范型Sequence是一个泛型类型,用于表示可迭代的、有序的、可索引的容器,如列表(list)或元组(tuple)
from typing import Sequence def get_numbers() -> Sequence[int]: return [1, 2, 3, 4, 5]
标签:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?