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

3
我想知道在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
你尝试过原样运行吗?我认为它应该可以工作。 - Matt Cremeens
@MattCremeens 这是一个语法错误。 - wim
不行,在2.7版本中不起作用,可能在3版本中可以,但我使用的是嵌入式设备,只能使用我现有的。 - user73383
1个回答

7
在Python 3.0+中实现了PEP 3102 -- Keyword-Only Arguments之后,这是可能的。实际上,语法将与您展示的完全相同。
对于Python 2的常规解决方法是:
def saveValues(file, *data, **kwargs):
    delim = kwargs.pop('delim', '|')
    ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接