¿Por qué acceder a la variable de clase dentro de la clase necesita "self" en Python? [duplicar]

Posible duplicado:
Python "auto" explicado

Estoy aprendiendo Python y tengo una pregunta, más teórica que práctica, sobre el acceso a las variables de clase del método de esta clase.

Por ejemplo tenemos:

class ExampleClass:
    x = 123
    def example_method(self):
        print(self.x)

¿Por qué es necesario escribir exactamenteself.x, No solox? x pertenece al espacio de nombres de la clase, y el método que lo usa también le pertenece. ¿Qué me estoy perdiendo? ¿Qué razón hay detrás de ese estilo?

En C ++ puedes escribir:

class ExampleClass {
public:
    int x;
    void example_method()
    {
        x = 123;
        cout << x;
    };
};

¡Y funcionará!

Respuestas a la pregunta(4)

Su respuesta a la pregunta