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

时间:2016-08-05 18:54:24

标签: python python-2.7 function arguments

我想知道在python 2.7.12

中是否有办法做这样的事情
def saveValues(file,*data,delim="|"):
    buf=""
    for d in data:
       buf+=str(d) + delim
    open(file,"w").write(buf[:-1])

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

1 个答案:

答案 0 :(得分:7)

在实现PEP 3102 -- Keyword-Only Arguments之后,它可以在Python 3.0+中实现。事实上,语法正是你如何展示它的方式。

Python 2的常用解决方法是:

def saveValues(file, *data, **kwargs):
    delim = kwargs.pop('delim', '|')
    ...