函数返回值 #
函数通过return语句返回值给调用者。
一、基本返回值 #
python
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
二、多个返回值 #
python
def get_stats(numbers):
return min(numbers), max(numbers), sum(numbers)
# 解包接收
minimum, maximum, total = get_stats([1, 2, 3, 4, 5])
# 作为元组接收
stats = get_stats([1, 2, 3, 4, 5])
print(stats) # (1, 5, 15)
# 返回列表或字典
def get_person():
return ["Tom", 25, "Beijing"]
def get_person_dict():
return {"name": "Tom", "age": 25}
三、无返回值 #
python
def greet(name):
print(f"Hello, {name}!")
result = greet("Tom")
print(result) # None
# 显式返回None
def process(data):
if not data:
return None
return data.upper()
四、提前返回 #
python
def divide(a, b):
if b == 0:
return None # 提前返回
return a / b
def find_user(users, user_id):
for user in users:
if user["id"] == user_id:
return user # 找到就返回
return None # 没找到
五、返回函数 #
python
def get_multiplier(factor):
def multiplier(x):
return x * factor
return multiplier
double = get_multiplier(2)
print(double(5)) # 10
# 使用lambda
def get_multiplier(factor):
return lambda x: x * factor
六、生成器返回 #
python
def generate_numbers(n):
for i in range(n):
yield i
numbers = generate_numbers(5)
print(list(numbers)) # [0, 1, 2, 3, 4]
七、类型注解 #
python
from typing import Optional, Tuple, List, Dict
def add(a: int, b: int) -> int:
return a + b
def get_stats(numbers: List[int]) -> Tuple[int, int, int]:
return min(numbers), max(numbers), sum(numbers)
def find_user(user_id: int) -> Optional[dict]:
users = {1: {"name": "Tom"}}
return users.get(user_id)
# Python 3.10+
def process(data: int | str) -> int | str:
return data
八、总结 #
| 返回类型 | 示例 |
|---|---|
| 单值 | return x |
| 多值 | return a, b, c |
| 无返回 | return 或 return None |
| 函数 | return lambda x: x * 2 |
| 生成器 | yield x |
最后更新:2026-03-16