能否让单个函数使用两个名称调用并传递不同参数配置?
实现带预设参数的函数变体
你原来的写法存在问题:直接执行func2 = func1(b=True)会立刻调用func1,但此时未传入必填参数a,会直接触发报错,根本无法达到预期效果。要实现你想要的功能,有两种简单可行的方式:
方法一:使用functools.partial(推荐)
这是Python标准库提供的工具,专门用来固定函数的部分参数,返回一个新的可调用对象:
import functools def func1(a, b=False): print(a) print(b) # 固定b=True,生成新函数func2 func2 = functools.partial(func1, b=True)
调用测试:
func1("hello") # 输出: # hello # False func2("hello") # 输出: # hello # True
方法二:手动编写包装函数
如果不想引入标准库,直接写一个简单的包装函数也能实现需求:
def func1(a, b=False): print(a) print(b) def func2(a): # 调用原函数时固定b=True func1(a, b=True)
测试效果和方法一完全一致。
内容的提问来源于stack exchange,提问作者alphadmon
相关产品推荐
相关产品推荐

