Python. Как обратиться к свойству дочернего класса из родительского?
Есть следующий минимально воспроизводимый пример:
class ParentClass():
def do(self):
print("Здесь вывести значение experiment_id")
class ChildClass(ParentClass):
def __init__(self, experiment_id):
self.experiment_id = experiment_id
print(experiment_id)
objChild = ChildClass("...")
objParent = ParentClass()
objParent.do()
Все, что нужно - это обратиться к свойству experient_id
дочернего класса (ChildClass
) из родительского (ParentClass
).Такое вообще возможно? Можно, конечно, перенести метод do
непосредственно в класс ChildClass
и просто создавать его экземпляр через
objParent = ParentClass()
objParent.do()
но в классе ChildClass
в оригинале создатся окно с помощью PyQt5 и конструктор по-этому не должен запускаться более одного раза.
Как решить проблему?
UPD: Нашел вот такой вариант решения:
class ParentClass():
def do(self, child_obj):
print("Здесь вывести значение experiment_id")
print(child_obj.experiment_id)
class ChildClass(ParentClass):
def __init__(self, experiment_id):
self.experiment_id = experiment_id
print(experiment_id)
objChild = ChildClass("...")
objParent = ParentClass()
objParent.do(objChild)
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант:
class ParentClass():
def do(self):
print(f"Здесь вывести значение experiment_id: {self.experiment_id}")
class ChildClass(ParentClass):
def __init__(self, experiment_id):
super().__init__()
self.experiment_id = experiment_id
print(f'class ChildClass(ParentClass): {self.experiment_id}')
objChild = ChildClass("Привет ...")
objChild.do() # <----
print("\n===========================")