python 符号‘->‘解析:函数返回类型
·
在 Python 中,
-> 符号用于 函数注解(Function Annotations),具体表示 返回值的类型提示。
基本语法
def 函数名(参数: 参数类型) -> 返回值类型:
# 函数体
return 返回值
实际示例
1. 基本用法
def greet(name: str) -> str:
return f"Hello, {name}"
# 调用
result = greet("Alice") # result 的类型提示为 str
2. 多种返回值类型
from typing import List, Dict, Optional, Union
# 返回列表
def get_numbers() -> List[int]:
return [1, 2, 3, 4, 5]
# 返回字典
def get_user() -> Dict[str, str]:
return {"name": "Bob", "email": "bob@example.com"}
# 可能返回 None
def find_user(user_id: int) -> Optional[str]:
if user_id == 1:
return "Alice"
return None
# 联合类型
def process(value: Union[int, str]) -> Union[int, str]:
if isinstance(value, int):
return value * 2
return value.upper()
3. 复杂类型
from typing import Callable, Tuple
# 返回元组
def get_coordinates() -> Tuple[float, float]:
return (10.5, 20.3)
# 返回函数
def create_multiplier(n: int) -> Callable[[int], int]:
def multiplier(x: int) -> int:
return x * n
return multiplier
4. 类方法中的使用
class Person:
def __init__(self, name: str) -> None:
self.name = name
def greet(self) -> str:
return f"Hi, I'm {self.name}"
@classmethod
def create_default(cls) -> 'Person':
return cls("Default")
重要说明
-
仅用于类型提示:
->不会强制执行类型检查,只是提供信息给开发者、IDE 和类型检查工具(如 mypy) -
运行时访问:可以通过
__annotations__属性访问def add(a: int, b: int) -> int: return a + b print(add.__annotations__) # {'a': <class 'int'>, 'b': <class 'int'>, 'return': <class 'int'>} -
Python 3.10+ 新语法:可以使用更简洁的类型联合
# Python 3.10+ def process(value: int | str) -> int | str: return value -
向后兼容:没有类型提示的代码依然有效,类型提示是可选的
IDE 支持
现代 IDE(如 PyCharm、VSCode)会利用这些类型提示提供:
- 代码自动补全
- 参数类型检查
- 返回值类型提示
- 重构支持
这种语法让 Python 代码更易于理解和维护,特别适合大型项目或团队协作。
更多推荐
所有评论(0)