函数返回值 #

函数通过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
无返回 returnreturn None
函数 return lambda x: x * 2
生成器 yield x
最后更新:2026-03-16