python eleganter schreiben
-
Hi, wie kann ich das schöner schreiben? Ich möchte die Rückgabe von foo() als argument von bar() entpacken und gleichzeitig noch mehr Parameter übergeben.
>>> def foo(): ... return [1, 2] ... >>> def bar(x, y, z=23): ... return x + y + z ... >>> bar(*foo()) # geht, schön 26 >>> bar(foo()[0], foo()[1], 7) # geht, hässlich 10 >>> bar(*foo(), 7) # geht nicht File "<stdin>", line 1 bar(*foo(), 7) ^ SyntaxError: invalid syntax
-
>>> def foo(): ... return [1,2] ... >>> def bar(x,z=23): ... return x[0]+x[1]+z ... >>> bar(foo()) 26 >>> bar(foo(),7) 10
-
Du könntest bar(*(foo() + [7])) schreiben.
-
bar( *foo(), z=7 )
geht mit Python 3.1.1, ob mit 2.* weiß ich nicht