python-类型提示(type hinting)
类型提示在 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) # 输出: 8
带类型提示的列表操作
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) # 输出: 10
带联合类型提示的函数
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)) # 输出: '42'
print(display_value("hello")) # 输出: '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")) # 输出: 'Hello, Alice!'
print(greet()) # 输出: 'Hello, stranger!'
带复杂数据结构的函数
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) # 输出: 21
通过类型提示,可以使代码更加明确和清晰,并帮助 IDE 和静态类型检查工具进行代码分析和错误检测。
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18186207