Tim*_*ton 2 python variables function argument-passing
所以我知道你可以通过执行以下操作将函数包装在另一个函数周围.
def foo(a=4,b=3):
return a+b
def bar(func,args):
return func(*args)
Run Code Online (Sandbox Code Playgroud)
所以,如果我随后打电话
bar(foo,[2,3])
Run Code Online (Sandbox Code Playgroud)
返回值为5.
我想知道有没有办法使用bar来调用foo与foo(b = 12),其中bar会返回16?
这有意义吗?非常感谢你提前的时间!抱歉问了这么多问题.
Mar*_*off 11
这需要**kwargs
(关键字参数)语法.
def foo(a=4, b=3):
return a+b
def bar(func, *args, **kwargs):
return func(*args, **kwargs)
print bar(foo, b=12) # prints 16
Run Code Online (Sandbox Code Playgroud)
*args
任何数量的位置参数在哪里**kwargs
,都是传入的所有命名参数.
当然,他们只是*args
和**kwargs
按照惯例; 你可以命名他们*panda
和**grilled_cheese
所有Python关怀.