相关疑难解决方法(0)

将**kwargs参数传递给**kwargs的另一个函数

我不明白下面的例子,假设我有这些功能:

# python likes
def save(filename, data, **kwargs):
    fo = openX(filename, "w", **kwargs) # <- #1
    fo.write(data)
    fo.close()
# python doesnt like
def save2(filename, data, **kwargs):
    fo = openX(filename, "w", kwargs) # <- #2
    fo.write(data)
    fo.close()

def openX(filename, mode, **kwargs):
    #doing something fancy and returning a file object
Run Code Online (Sandbox Code Playgroud)

为什么#1是正确的解决方案而#2是错误的解决方案?**kwargs基本上是一个字典,所以如果我想将参数传递给openX,我认为正确的方法是没有**,只是给dict.但是python显然不喜欢第二个并且告诉我我给了3而不是2个参数.那么这背后的原因是什么?

python

132
推荐指数
3
解决办法
8万
查看次数

标签 统计

python ×1