class A:
a = 0
def set_a(s):
a = s
print(a)
A.set_a(10) # 10
print(A.a) # 0
a
в set_a
локальная переменная, a
в классе он просто не видит и создает новую переменную
Чтобы обращаться к элементам класса, необходимо в параметрах класса указывать self
первым параметром, а также обращаться к элементам класса с помощью self.
. Методы без self
в параметрах будут являться статическими, в подобных методах изменять значения переменных класса изменять нельзя, только при обращении к классу напрямую
Для хранения переменных класса необходимо объявить переменную этого класса
class A:
a = 0
def set_a(self,s):
self.a = s
print(self.a)
a = A()
a.set_a(10) # 10
print(a.a) # 10
Если вы хотите изменить переменные класса, то необходимо обращение к ним:
class A:
a = 0
def set_a(s):
A.a = s
print(A.a)
A.set_a(10) # 10
print(A.a) # 10