
Am 16.02.2014 17:34, schrieb Michael Ströder:
kann mich mal jemand erhellen, was der feine Unterschied ist, wenn ich eine Klasse von UserDict.UserDict oder dict ableite und die in der Python Format String Syntax verwende?
In Ergänzung zu Peters Antwort: - UserDict ist noch ein Überbleibsel aus der Zeit vor Python 2.0, in der man in Python nicht von den eingebauten Typen ableiten konnte. - UserDict ist daher auch keine "new style"-Klasse. - In Python 3 funktioniert die dict-Subklasse wie von dir erwartet. - Die Referenz-Dokumentation sagt zur **-Syntax nur: "If the syntax **expression appears in the function call, expression must evaluate to a mapping, the contents of which are treated as additional keyword arguments." http://docs.python.org/3/reference/expressions.html#index-37 Das lässt einigen Spielraum für die Interpretation offen ("evaluate to"), insbesondere da die Dokumentation zu __getitem__ nur von Auswirkungen auf den Zugriff auf Sequence/Mapping-Elemente über den []-Operator spricht. http://docs.python.org/3/reference/datamodel.html#object.__getitem__ Chris