Por que acessar a variável de classe dentro da classe precisa de “self” em Python? [duplicado]

Duplicata Possível:
Python 'self' explicou

Estou aprendendo Python e tenho uma pergunta, mais teórica do que prática, sobre as variáveis ​​de classe de acesso do método dessa classe.

Por exemplo, nós temos:

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

Por que é necessariamente escrever exatamenteself.x, não apenasx? x pertence ao namespace da classe, e o método que o utiliza também pertence a ele. o que estou perdendo? Que lógica está por trás de tal estilo?

Em C ++ você pode escrever:

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

E vai funcionar!

questionAnswers(4)

yourAnswerToTheQuestion