我有一个函数,它使用 kwarg 调用另一个函数以确定是否应该调用它:
def a(val):
print(val)
def caller(func, call_it=True, *args, **kwargs):
if call_it:
func(*args, **kwargs)
# doesnt work
caller(a, 1)
# works
caller(a, True, 1)
在 call_it
参数有默认值但仍需要 *args 的情况下如何处理?
最佳答案
不可以,关键字参数不能放在普通参数之前。一个有效的签名应该是 caller(func, *args, call_it=True, **kwargs)
。
关于python - *args 可以在关键字参数之后使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63200783/