Переменная экземпляра Python превращается в переменную класса во время выполнения

#python #oop #python-3.6 #instance-variables #class-variables

#python #ооп #python-3.6 #переменные экземпляра #переменные класса

Вопрос:

используя Python 3.6.9, когда я запускаю следующий код, переменная экземпляра x пугающе превращается из переменной экземпляра в переменную класса. Я вижу это с помощью отладчика VSCode (VSCode 1.51.1, расширение ms-python.python v2020.12.424452561). В чем причина?

 class Image:
    pass


class Archive:
    def __init__(self, x):
        self.x = x


a = Archive(33)
a.x = Image
pass
 

введите описание изображения здесь

введите описание изображения здесь

Комментарии:

1. Нет, это не так. Возможно, отображение отладчика вводит в заблуждение, или вы неправильно его читаете.

2. Назначение класса Image a.x довольно странно. Непонятно, зачем вы это делаете.

3. Я не знаю, почему это отображается в разделе «переменные класса», но это не переменная класса. Возможно, вы отредактировали свой код, не перезапуская Python или что-то в этом роде.

4. Переменная ‘x’ хранит объект класса Image, но по-прежнему является переменной экземпляра для архивирования класса

5. Хорошо, тогда ваша IDE неверна или использует свою собственную терминологию