2016-08-05 64 views
3

Ich frage mich, ob es einen Weg gibt so etwas wie dies in Python 2.7.12Python Verwenden von Keyword und variable Anzahl von Argumenten in derselben Funktion

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

So zu tun, dass ich die Möglichkeit haben, delim zu passieren, oder nimm den Standard.

+1

Haben Sie schon versucht, diese aus, wie sie ist? Ich denke, es sollte funktionieren. –

+0

@MattCremeens das ist ein Syntaxfehler – wim

+0

Nein ... funktioniert nicht in 2.7 ... kann in 3 arbeiten, aber ich bin auf einem eingebetteten Gerät, wo ich zu verwenden, was ich habe. – user73383

Antwort

7

Es ist möglich in Python 3.0+, nach der Implementierung von PEP 3102 -- Keyword-Only Arguments. Die Syntax wäre genau so, wie Sie es tatsächlich gezeigt haben.

Die übliche Abhilfe für Python 2 ist dies:

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

Das funktioniert super - danke! – user73383