Python-Name Mangling-Funktion

8

Gibt es eine Funktion in der Python-Standardbibliothek, um Pythons Name-Mangling-Schema mit einem "privaten" Attributnamen zu reproduzieren? Es scheint so als würde es sein, aber ich kann es nicht für mein Leben finden.

Ich habe das geschrieben, aber wenn es einen besseren Weg gibt, bin ich ganz Ohr.

%Vor%     
rectangletangle 13.06.2012, 22:37
quelle

1 Antwort

14

Es sieht so aus, als ob der Compiler -Modul eine Python-Implementierung dafür hat, die Signatur ist mangle(name, klass) wo klass ist der Klassenname, nicht das Objekt selbst.

So können Sie darauf zugreifen und es verwenden:

%Vor%

Beachten Sie, dass das Compilermodul seit Python 2.6 veraltet ist und in Python 3.0 nicht mehr existiert.

Hier ist die Funktion selbst (aus Python 2.7 Quellcode ) ) Wenn Sie es nur in Ihre Quelle kopieren oder überprüfen möchten, ob Ihre Version äquivalent ist:

%Vor%     
Andrew Clark 13.06.2012, 23:05
quelle

Tags und Links