Python 中的-> 符号
在 Python 中,
-> 符号是函数注解(Function Annotations)的一部分,专门用于提示函数的返回值类型。它只是一种 “提示”,Python 解释器不会强制检查类型是否匹配(需要借助 mypy 等工具才能做类型校验),但能极大提升代码的可读性和可维护性。基础示例
先看一个最简单的示例,直观理解
-> 的用法:# 函数注解:参数 a、b 是 int 类型,返回值也是 int 类型
def add(a: int, b: int) -> int:
return a + b
# 测试调用
result = add(3, 5)
print(f"add(3,5) 的结果:{result},类型:{type(result)}") # 输出:8,类型:<class 'int'>
# 即使传入非 int 类型,Python 也不会报错(注解仅作提示)
result2 = add(3.5, 5.2)
print(f"add(3.5,5.2) 的结果:{result2},类型:{type(result2)}") # 输出:8.7,类型:<class 'float'>
常见场景示例
下面是几个更贴近实际开发的场景,覆盖不同返回类型:
1. 返回字符串类型
def greet(name: str) -> str:
"""生成问候语,参数是字符串,返回值也是字符串"""
return f"Hello, {name}!"
print(greet("Python")) # 输出:Hello, Python!
2. 返回布尔类型
def is_adult(age: int) -> bool:
"""判断是否成年,参数是整数,返回值是布尔值"""
return age >= 18
print(is_adult(20)) # 输出:True
print(is_adult(17)) # 输出:False
3. 返回列表 / 字典等复杂类型
如果返回值是列表、字典等容器类型,需要从
typing 模块(Python 3.9+ 可直接用内置类型)导入对应注解:# Python 3.9+ 推荐写法(直接用 list、dict)
def get_user_info(user_id: int) -> dict[str, str | int]:
"""返回用户信息字典,值可能是字符串或整数"""
return {
"id": user_id,
"name": f"User{user_id}",
"role": "normal"
}
# Python 3.8 及以下需要从 typing 导入
# from typing import Dict, Union
# def get_user_info(user_id: int) -> Dict[str, Union[str, int]]:
# ...
print(get_user_info(100)) # 输出:{'id': 100, 'name': 'User100', 'role': 'normal'}
4. 返回 None 类型
如果函数没有返回值(默认返回
None),可以用 -> None 明确标注:def print_info(msg: str) -> None:
"""打印信息,无返回值"""
print(f"提示:{msg}")
print_info("函数注解仅作类型提示") # 输出:提示:函数注解仅作类型提示
print(print_info("测试")) # 输出:提示:测试 + None
总结
->是 Python 函数注解的一部分,仅用于标注函数返回值的类型,参数类型标注用参数名: 类型。- 注解是 “提示性” 的,Python 解释器不会校验类型是否匹配(如传入浮点数给标注为 int 的参数,不会报错)。
- 常见用法:
-> int(返回整数)、-> str(返回字符串)、-> None(无返回值)、-> list[int](返回整数列表)等,提升代码可读性。

浙公网安备 33010602011771号