Answer the question
In order to leave comments, you need to log in
How to access parent class variable in python?
Hello. I have a stupid question.
I'm trying to change the value of a variable in the parent class when creating class instances. But I don't know how to reach her.
Let me give you a stupid and short example.
class Main: # основная функция
def __init__(self):
self.ab = AB() # создаем экзмпляр класса с переменными
d1 = Dialog1() # Создаем экзэмпляр класса который должен поменять переменную ab.a
d2 = Dialog2() # Создаем экзэмпляр класса который должен поменять переменную ab.b
def sum(self):
c = self.ab.a + self.ab.b
print(c)
class Dialog1:
def __init__(self):
ab.a = 5 # !!! Пытаюсь поменять значение в переменной созданом в родительском классе Main
class Dialog2:
def __init__(self):
ab.b = 6 # !!! Пытаюсь поменять значение в переменной созданом в родительском классе Main
class AB:
a = 1
b = 2
m = Main()
Answer the question
In order to leave comments, you need to log in
I didn’t quite understand why you need this, but the minimum fixes are below, and the options for Dialog1 and Dialog2 are different, without additional information I don’t know which is better.
class Main(object): # основная функция
def __init__(self):
self.ab = AB() # создаем экзмпляр класса с переменными
d1 = Dialog1(self.ab) # Создаем экзэмпляр класса который должен поменять переменную ab.a
d2 = Dialog2(self) # Создаем экзэмпляр класса который должен поменять переменную ab.b
def sum(self):
c = self.ab.a + self.ab.b
print(c)
class Dialog1(object):
def __init__(self, parent):
parent.a = 5 # !!! Пытаюсь поменять значение в переменной созданом в родительском классе Main
class Dialog2(object):
def __init__(self, parent):
parent.ab.b = 6 # !!! Пытаюсь поменять значение в переменной созданом в родительском классе Main
class AB(object):
a = 1
b = 2
m = Main()
print(m.ab.a)
print(m.ab.b)
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question