BlackJack hat geschrieben:@xeike: Das ist IMHO unschön solange nicht wirklich alle Werte von `foo()` auch benötigt werden. Und dann wäre es lesbarer wenn die Funktionssignatur nicht nur aus so einem allgemeinen Argument `meine_einstellungen` bestehen würde.
Die Kritik verstehe ich nicht.
* Ob oder ob nicht alle Elemente vom dict "einstellungen" gebraucht werden, ist zunächst unerheblich. Der OP wollte nur wissen, wie man Instanzen durch die Gegend reicht.
* dict ist der kleinste Datentyp, der sauber auf seine Elemente per Namen zugreifen kann, ohne weitere Module zu benutzen oder kompliziertere Sprachstrukturen zu bemühen oder gar "magic numbers" einzuführen.
* Störst du dich bei der funktion "foo()" daran, dass die Argumente nicht als Keywords vorliegen?
In dem Fall hilft dem OP vielleicht:
Code: Alles auswählen
def bar( ip="0.0.0.0", server="ww.example.org" ):
... print( ip, server )
...
>>> bar()
0.0.0.0 ww.example.org
>>> bar( *einstellungen )
ip server
>>> bar( **einstellungen )
127.0.0.1 ww.python-forum.de
Na, mal sehen.