Accediendo al módulo privado variable de clase
Estoy tratando de entender las reglas de alcance de Python. Para ello intento acceso a la variable "muy privada" de la clase en el mismo módulo
bar = "bar"
_bar = "underscore"
__bar = "double underscore"
def foo():
print bar
print _bar
print globals()["__bar"]
print __bar
class Foo:
def __init__(self):
print bar
print _bar
print globals()["__bar"]
print __bar #NameError: global name '_Foo__bar' is not defined
foo()
Foo()
Falla conNameError
. No puedo encontrar nada sobre eso en la especificación. Entonces, ¿por qué falla y dónde se describe este comportamiento?