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模块。

标签: 函数注解 类型提示 typing模块 类型检查 Python函数

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python偏函数partial详解 - functools模块参数固定 下一篇: Python abs()函数

poll相关推荐