.NET C# Java Javascript Exception

 | 
Frage stellen Fragen Themen Mitglieder Abzeichen RSS-Feed
1
Hier der Codeschnipsel:
def foo_op(fun, *args, **abc):
return fun(*args, **abc)


Was bedeutet "*" und "**"?
Themen:
19.09.09
Pumpit 167 3
Kommentieren - Für Rückfragen oder Anmerkungen
1 Antworten
3
*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




            
19.09.09
pjacobi 946 2 6
pjacobi 946 2 6
Was meinst du mit vorstehende Parameter verbraucht worden?
Pumpit 19.09.09
vielen Dank für das Edit :D
Pumpit 19.09.09
Deine Antwort
Entweder einloggen... ...oder ohne Wartezeit registrieren
Name
Passwort
Passwort wiederholen
E-Mail
Geworben von


Login mit OpenID

Mit einem OpenID-Account kannst Du dich auf allen Webseiten anmelden, die OpenID unterstützen. Du hast bereits ein Benutzerkonto bei einem der folgenden Provider? Dann kannst Du dich direkt hier damit registrieren.


OpenID-Provider anklicken: