我有两个函数因一个参数而不同,我想根据给定的情况相应传递...
def func1(a, b, c):
print a, b, c
def func2(a, b, c, d=False)
print a, b, c, d
def run(func, **kwargs):
if b is None:
b = 999
func(**kwargs)
run(func1, a=1, b=None, c=3)
我无法让它工作,因为它抱怨在分配之前引用了b
。
答案 0 :(得分:2)
def func1(a, b, c):
print a, b, c
def func2(a, b, c, d=False):
print a, b, c, d
def run(func, **kwargs):
if 'b' in kwargs:
if kwargs['b'] is None:
kwargs['b'] = 999
func(**kwargs)
run(func1, a=1, b=None, c=3)
答案 1 :(得分:0)
访问b:
if kwargs['b'] is None:
因此,运行函数将是:
def run(func, **kwargs):
kwargs['b'] = kwargs.get('b', 999)
func(**kwargs)