Ich habe eine (vereinfachte) -Modul, so etwas wie dieses:Mit Bezug auf äußere Umfang von Python-Klasse
import tkinter as tk
__outerVar = {<dict stuff>}
class Editor(tk.Frame):
...
def _insideFunction(self):
for p in __outerVar.keys():
<do stuff>
Ich erhalte eine NameError: name '_Editor__outerVar' is not defined
über die Verwendung von __outerVar
, wenn ich versuche Editor zu instanziiert. Ich habe versucht, "global __outerVar
" oben auf insideFunction
, obwohl ich nicht auf __outerVar
schreibe, gleichen Fehler.
Ich bin mir sicher, dass ich hier nur eine Python-Scope-Regel falsch verstehe. Hilfe?
py 3,5
Python Name Mangling bei der Arbeit. Warum nicht nur "äußereVar" und in deiner Klasse als "äußereVar" aufrufen? –
Ich dachte, die _ und __ waren nur Konvention, im Wesentlichen, geschützte und private Variablen. Ich war mir des Namens Mangling nicht bewusst. – Marc