pin_drop当前位置:知识文库 ❯ 图文
Python函数注解详解 - 类型提示和typing模块
概述
函数注解(Function Annotations)是Python 3引入的语法,用于在函数定义时为参数和返回值添加类型提示。注解不影响程序运行,主要用于文档和类型检查。
语法
代码示例
def func(param: type) -> return_type:
pass
基本用法
代码示例
def greet(name: str) -> str:
return f"Hello, {name}!"
print(greet("Alice"))
print(greet.__annotations__)
多参数注解
代码示例
def add(a: int, b: int) -> int:
return a + b
print(add(3, 5))
print(add.__annotations__)
复杂类型注解
代码示例
from typing import List, Dict
def process(data: List[int]) -> Dict[str, int]:
return {"sum": sum(data), "count": len(data)}
result = process([1, 2, 3, 4, 5])
print(result)
注意事项
提示:注解不影响程序运行。注解主要用于类型提示和IDE支持。可以使用typing模块提供复杂类型。运行时不会强制类型检查。
小结
-
函数注解为参数和返回值添加类型提示:提高代码可读性
-
不影响程序运行:仅作为元数据存储
-
主要用于文档和类型检查:配合IDE和类型检查工具使用
-
使用typing模块支持复杂类型:如List、Dict、Optional等
练习题
练习1
为函数calculate(x: float, y: float) -> float添加完整的类型注解
练习2
使用typing模块为处理学生信息的函数添加复杂类型注解
常见问题
函数注解会影响程序性能吗?
不会。函数注解只是存储在函数的__annotations__属性中,Python解释器不会对其进行任何运行时检查或处理,对性能没有任何影响。
typing模块和内置类型注解有什么区别?
内置类型(如int、str、list)只能表示简单类型,typing模块提供更复杂的类型表达,如List[int]表示整数列表,Dict[str, int]表示字符串到整数的字典,Optional表示可空类型等。
如何查看函数的注解信息?
可以通过函数的__annotations__属性查看。返回一个字典,键是参数名或'return',值是对应的类型注解。例如:func.__annotations__。
函数注解在Python 3.9之后有什么变化?
Python 3.9开始支持使用内置类型(如list、dict)代替typing模块的List、Dict。例如可以直接写def func(x: list[int]) -> dict[str, int],无需导入typing模块。
本文涉及AI创作
内容由AI创作,请仔细甄别