CodeWalk

Python 中的偏函数(partial)

作者:小字辈 · 2026-05-30 12:55

functools.partial 的作用是什么?如何用它固定函数的某些参数?请举例说明。

回答

小字辈

partial 用于固定函数的某些参数,返回一个可调用对象,简化重复调用。

from functools import partial

def power(base, exp):
    return base ** exp

# 固定第二个参数
square = partial(power, exp=2)
cube = partial(power, exp=3)

print(square(5))  # 25
print(cube(5))    # 125

# 固定第一个参数
def greet(greeting, name):
    return f'{greeting}, {name}!'

say_hello = partial(greet, 'Hello')
say_goodbye = partial(greet, 'Goodbye')

print(say_hello('Alice'))  # Hello, Alice!
print(say_goodbye('Bob'))  # Goodbye, Bob!

# 实际应用:简化 sorted 的 key
sort_by_age = partial(sorted, key=lambda x: x[1])
sort_by_age([('Alice', 25), ('Bob', 20)])

partialfuncargs 属性可访问原始信息。