Почему доступ к переменной класса изнутри класса требует «себя» в Python? [Дубликат]

Возможный дубликат:
Python "я" объяснил

Я изучаю Python, и у меня есть вопрос, более теоретический, чем практический, относительно переменных класса доступа из метода этого класса.

Например, у нас есть:

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

Почему обязательно писать именноself.x, не простоx? x принадлежит пространству имен класса, и метод, использующий его, также принадлежит ему. Чего мне не хватает? Какое обоснование стоит за таким стилем?

В C ++ вы можете написать:

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

И это будет работать!

Ответы на вопрос(4)

Ваш ответ на вопрос