[Tutor] passing arguments to functions - problem with argument order

tetsuo2k6 at web.de tetsuo2k6 at web.de
Mon Mar 10 16:28:23 CET 2008


And I thought I might get away without using dicts...

Thanks, Greg



Greg Graham schrieb:
> Paul,
> 
> Python does not allow mixing variable length arguments and keyword arguments in that way. To accomplish what you want, you must add an argument preceded by a "**" which will be a dict containing all of the keyword arguments as key, value pairs. You then have to retrieve the arguments from the dict by name. When called, the keyword arguments must be last.
> 
> Here is a little example:
> 
> def test(*column_definitions, **options):
>     print "Column Definitions:" + ", ".join(column_definitions)
>     output_csv_filename = options.get('output_csv_filename', None)
>     print "Output csv filename: " + str(output_csv_filename)
> 
> 
>>>> test("kundennummer", "anrede", "vorname", "nachname", "plz", "ort", "adresse", "kontoinhaber", "blz", "kto", "bankname", "status", "spielbeginn", "letzte_aenderung", "importdatum", "briefdatum", "buchungsdatum", "stornodatum", output_csv_filename=None)
> Column Definitions:kundennummer, anrede, vorname, nachname, plz, ort, adresse, kontoinhaber, blz, kto, bankname, status, spielbeginn, letzte_aenderung, importdatum, briefdatum, buchungsdatum, stornodatum
> Output csv filename: None
> 
> Greg


More information about the Tutor mailing list