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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta