我需要一些帮助来计算出Pythons *args
和**kwargs
。这很简单,但我并没有把头围绕在他们身上。这是一个让我感到困惑的场景。一起使用可变长参数列表和命名参数
我有两个函数mainfunc
和wrapperfunc
(这是主函数的包装函数)。它看起来像这样。
def mainfunc(fname=None, lname=None):
print 'Firstname: ' + fname
print 'Lastname: ' + lname
def wrapperfunc(uname, *args):
print uname
mainfunc(*args)
我可以调用wrapperfunc
这样的:
wrapperfunc('j.doe', 'john', 'doe')
在这种方法中,所有三个参数是位置。由于j.doe
进入uname
,其他两个参数可以通过*args
..但访问是有可能一些则params的从字典传递给wrapperfunc
,这样我仍然可以访问uname
内wrapperfunc
直接再通过剩余的位置参数为mainfunc
。像下面的代码片段:
params = {'uname':'j.doe'}
wrapperfunc(**params, 'john', 'doe')
我要访问的命名参数里面直接wrapperfunc
但所有的位置参数传递给mainfunc
。
目前尚不清楚你到底想要什么。请举一些更好的例子 –
您已* *直接在'wrapperfunc'内部访问'uname',并将其余的args传递给'mainfunc'。请解释。 –
我做了一个编辑。请看一看。对不起,我的问题不清楚。 –