Python在同一个函数中使用关键字和可变数量的参数

use*_*383 3 python arguments function python-2.7

我想知道是否有办法在python 2.7.12中做这样的事情

def saveValues(file,*data,delim="|"):
    buf=""
    for d in data:
       buf+=str(d) + delim
    open(file,"w").write(buf[:-1])
Run Code Online (Sandbox Code Playgroud)

这样我就可以选择传递delim,或者采用默认值.

wim*_*wim 7

在实现PEP 3102 - 仅关键字参数之后,它可以在Python 3.0+中实现.事实上,语法正是你如何展示它的方式.

Python 2的常用解决方法是:

def saveValues(file, *data, **kwargs):
    delim = kwargs.pop('delim', '|')
    ...
Run Code Online (Sandbox Code Playgroud)