Ich weiß nicht, warum das nicht funktioniert:
Ich verwende die odict Klasse von PEP 372 , aber ich möchte es als __dict__
-Member verwenden, dh:
Aber aus irgendeinem Grund bekomme ich seltsame Ergebnisse. Das funktioniert:
%Vor%Aber der Versuch, auf das eigentliche Wörterbuch zuzugreifen, funktioniert nicht:
%Vor%Und es wird seltsamer:
%Vor%Ich fühle mich sehr dumm. Kannst du mir helfen?
Die nächste Antwort auf Ihre Frage, die ich finden kann, ist Ссылка .
Wenn __dict__
kein tatsächliches dict()
ist, wird es ignoriert und die Attributsuche schlägt fehl.
Die Alternative dazu ist, das Odict als Mitglied zu verwenden und die Methoden getitem und setitem entsprechend zu überschreiben.
%Vor%Alles in sykoras Antwort ist richtig. Hier ist eine aktualisierte Lösung mit den folgenden Verbesserungen:
a.__dict__
copy.copy()
==
und !=
collections.OrderedDict
aus Python 2.7. ...
%Vor%Wenn Sie nach einer Bibliothek mit Attributzugriff auf OrderedDict suchen, bietet das Paket orderedattrdict dies.
> %Vor%Offenlegung: Ich habe diese Bibliothek verfasst. Dachte, es könnte zukünftigen Suchern helfen.
Tags und Links python ordereddictionary