Alias ​​für die Wörterbuchoperation in Python

8

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!

    
Chaoxu Tong 21.01.2013, 18:46
quelle

2 Antworten

13

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:

%Vor%     
mgilson 21.01.2013, 18:50
quelle
4

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:

%Vor%

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 :

akzeptieren %Vor%     
delnan 21.01.2013 18:51
quelle

Tags und Links