类型提示在 Python 3.5 及更高版本中引入,能够让代码更具可读性和可维护性,并帮助静态类型检查工具进行代码分析。以下是关于类型提示的一些详细介绍和示例:
类型提示概述
- 基本语法:
- 函数参数类型提示:
def function_name(param: type) -> return_type:
- 返回值类型提示:
def function_name(...) -> return_type:
- 常见类型提示:
int
:整数
float
:浮点数
str
:字符串
bool
:布尔值
list
:列表
tuple
:元组
dict
:字典
set
:集合
Union
:联合类型(例如 Union[int, str]
表示可以是整数或字符串)
Optional
:可选类型(例如 Optional[int]
表示可以是整数或 None)
Any
:任意类型
示例代码
简单的加法函数
| def add(a: int, b: int) -> int: |
| """ |
| 返回两个整数的和。 |
| |
| Args: |
| a (int): 第一个整数 |
| b (int): 第二个整数 |
| |
| Returns: |
| int: 两个整数的和 |
| """ |
| return a + b |
| |
| |
| result = add(5, 3) |
| print(result) |
带类型提示的列表操作
| from typing import List |
| |
| def sum_list(numbers: List[int]) -> int: |
| """ |
| 返回一个整数列表的和。 |
| |
| Args: |
| numbers (List[int]): 整数列表 |
| |
| Returns: |
| int: 列表元素的和 |
| """ |
| return sum(numbers) |
| |
| |
| result = sum_list([1, 2, 3, 4]) |
| print(result) |
带联合类型提示的函数
| from typing import Union |
| |
| def display_value(value: Union[int, str]) -> str: |
| """ |
| 返回输入值的字符串表示形式。 |
| |
| Args: |
| value (Union[int, str]): 整数或字符串 |
| |
| Returns: |
| str: 输入值的字符串表示 |
| """ |
| return str(value) |
| |
| |
| print(display_value(42)) |
| print(display_value("hello")) |
带可选类型提示的函数
| from typing import Optional |
| |
| def greet(name: Optional[str] = None) -> str: |
| """ |
| 返回问候语。如果提供了名字,则包含名字。 |
| |
| Args: |
| name (Optional[str]): 可选的名字 |
| |
| Returns: |
| str: 问候语 |
| """ |
| if name: |
| return f"Hello, {name}!" |
| else: |
| return "Hello, stranger!" |
| |
| |
| print(greet("Alice")) |
| print(greet()) |
带复杂数据结构的函数
| from typing import Dict, List |
| |
| def process_data(data: Dict[str, List[int]]) -> int: |
| """ |
| 处理包含字符串键和整数列表值的字典,并返回所有整数的总和。 |
| |
| Args: |
| data (Dict[str, List[int]]): 包含字符串键和整数列表值的字典 |
| |
| Returns: |
| int: 所有整数的总和 |
| """ |
| total = 0 |
| for key, numbers in data.items(): |
| total += sum(numbers) |
| return total |
| |
| |
| sample_data = {"a": [1, 2, 3], "b": [4, 5, 6]} |
| result = process_data(sample_data) |
| print(result) |
通过类型提示,可以使代码更加明确和清晰,并帮助 IDE 和静态类型检查工具进行代码分析和错误检测。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2023-05-11 python读取txt文本匹配excel内容
2023-05-11 sqlite3