| 

.NET C# Java Javascript Exception

1
Hier der Codeschnipsel:
def foo_op(fun, *args, **abc):
return fun(*args, **abc)


Was bedeutet "*" und "**"?
News:
19.09.2009
Pumpit 177 5
1 Antwort
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.2009
pjacobi 1,1k 2 6
pjacobi 1,1k 2 6
Was meinst du mit vorstehende Parameter verbraucht worden?
Pumpit 19.09.2009
vielen Dank für das Edit :D
Pumpit 19.09.2009

Stelle deine Python-Frage jetzt!