.NET C# Java Javascript Exception

 | 
Frage stellen Fragen Themen Mitglieder Abzeichen RSS-Feed

Antwort #A1178 zur Frage #F310: * und ** in Python

Diese Antwort hat bisher 2 Versionen. Frage #F310: * und ** in Python - Antwort #A1178


Version 2
19.09.2009 14:35:53
Dies ist die aktuelle Version
*args (Identifier beliebig) ist eine Liste der (unbenannten) Argumente, die noch nicht durch vorstehende Parameter verbraucht worden sind.
**abc (Identifier beliebig) ist ein Dictionary der benannten Argumente, ie noch nicht durch vorstehende Parameter verbraucht worden sind.

Insgesamt bewirkt der Codeschnipsel, dass alle Argumente außer fun an fun weitergereicht werden.

Edit 14:30 -- Beispiel zu "verbraucht"

def testfn (foo, bar, baz, *args, **kwargs):
print "foo=",foo
print "bar=",bar
print "baz=",baz
for (n, item) in enumerate (args):
print "args[%s]=%s" % (n, item)
for k in kwargs:
print "kwargs[%s]=%s" % (k, kwargs [k])



testfn (111, 222, 333, 444, 555, extra=666)
foo= 111
bar= 222
baz= 333
args[0]=444
args[1]=555
kwargs[extra]=666


testfn (abc="def", foo="FUBAR", bar=True, baz=False);
foo= FUBAR
bar= True
baz= False
kwargs[abc]=def




            
pjacobi 946 2 6
Version 1
19.09.2009 13:34:25
*args (Identifier beliebig) ist eine Liste der (unbenannten) Argumente, die noch nicht durch vorstehende Parameter verbraucht worden sind.
**abc (Identifier beliebig) ist ein Dictionary der benannten Argumente, ie noch nicht durch vorstehende Parameter verbraucht worden sind.

Insgesamt bewirkt der Codeschnipsel, dass alle Argumente außer fun an fun weitergereicht werden.
pjacobi 946 2 6