В вашем коде есть несколько моментов, которые требуют внимания. Давайте разберем его по шагам.
Объявление класса: Вы объявили класс
Foo, и внутри него у вас есть переменная классаa, которая инициализирована значением 0.Метод инициализации: В методе
init, который вы, вероятно, хотели назвать__init__, вы присваиваете переменнойaзначение, переданное в аргументеvalue. Однако здесь вы создаете новую локальную переменнуюa, а не изменяете переменную класса. Чтобы это исправить, вам нужно использоватьself.aвместоa.
Вот исправленный код:
class Foo:
a = 0
def __init__(self, value):
self.a = value
print(Foo(1).a)
Теперь, когда вы создаете экземпляр класса Foo с аргументом 1, он установит self.a равным 1. Таким образом, код выведет:
1
Использование self позволяет вам обращаться к переменным экземпляра класса, и это самый распространенный способ установки значений для атрибутов, которые принадлежат конкретному объекту класса.
