[Python-de] Unpacking Argument Lists

Achim Domma (Procoders) domma at procoders.net
Die Nov 16 21:46:27 CET 2004


Hi,

ich versuch's mal, wobei hier sicher Leute sind, die mich korrigieren 
können:

> Kurz: Warum funktioniert das eine und warum ist das andere ein
> SyntaxError? Ich kann keinen wesentlichen Unterschied erkennen.

Der Unterschied ist, daß du einmal einen Funktionsaufruf hast und das 
andere mal nicht. Der * ist keine Operator, den du auf ein Tupel 
anwenden kannst, sondern eine Art, einer Funktion Parameter zu übergeben.
Beim Syntax Error wird keine Funktion aufgerufen, von daher hat der * da 
nix zu suchen. Du kannst ja auch sowas machen:

params{
    'name1':'value1',
    'name2':'value2'
    }

some_fkt(**params)

Das heißt aber (meines Wissens) noch lange nicht, daß **params allgemein 
was sinnvolles machen sollte.

Gruß,
Achim