Ich möchte so etwas tun:
%Vor%aber es ist einfach schmerzhaft diese immer wieder zu tippen, gibt es trotzdem einen Alias dafür? Ich weiß in C ++ ist es möglich, eine Hilfsfunktion, die eine Referenz zurückgeben, so dass Sie einfach eingeben können:
%Vor%mit F als Hilfsfunktion. Vielen Dank!
Ich denke, dass dies wirklich nur über eine Unterklasse erreicht werden kann:
%Vor%ergibt:
%Vor% Dies führt zu einer Asymmetrie zwischen __getitem__
und __setitem__
, die leicht behoben werden kann, indem __getitem__
auf die gleiche Weise neu definiert wird.
Das könnte ein bisschen unordentlich scheinen - In der Tat ist es. Warum benötigen Sie eine Unterklasse? Das macht es nur schwer, nicht frozenset
-Objekte als Schlüssel in das Wörterbuch aufzunehmen. Sie können dieses Rezept jedoch leicht verwenden, um ein Proxy-Objekt zu erstellen, das dies mit Ihrem Diktat macht:
Es gibt nichts wie eine C ++ - Referenz in Python, und die Syntax, die Sie verwenden, ist zum Booten illegal (in den Worten des Parsers: can't assign to function call
). Sie könnten es mit einem Objekt oder einer Unterklasse dict
emulieren, um seine __getitem__
anzupassen. Aber es gibt einen einfacheren und weniger aufdringlichen Weg: Übergeben Sie den Wert auch an den Helfer und lassen Sie ihn die Aufgabe übernehmen:
Beachten Sie, dass hierfür ein Python 3-Feature, reine Keyword-Parameter, verwendet wird. Wenn Sie mit Python 2 arbeiten müssen, können Sie die Aufrufsyntax emulieren, indem Sie **kwdargs
:
Tags und Links python