gpt4 book ai didi

python - 解析函数中的默认参数而不执行它们

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:02 26 4
gpt4 key购买 nike

我需要将一个函数(不调用它)传递给另一个函数,但我需要为默认参数指定一个不同的值。

例如:

def func_a(input, default_arg=True):
pass

def func_b(function):
pass

func_b(func_a(default_arg=False))

但是,这会调用 func_a() 并将结果传递给 func_b()

如何在不执行 func_a 的情况下设置 default_arg=False

最佳答案

使用 functools.partial() object :

from functools import partial

func_b(partial(func_a, default_arg=False))

partial() 对象也是可调用的,当被调用时,它会将您给它的参数应用于第一个参数。

演示:

>>> from functools import partial
>>> def func_a(input, default_arg=True):
... print('func_a() called with {!r}, and default_arg={!r}'.format(input, default_arg))
...
>>> def func_b(function):
... print('Calling the function')
... function('Foo bar')
...
>>> func_b(partial(func_a, default_arg=False))
Calling the function
func_a() called with 'Foo bar', and default_arg=False

关于python - 解析函数中的默认参数而不执行它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38503937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com