Когда я пытаюсь:
class A:
def __init__(self):
self.flag = False
def check_flag(self):
if self.flag: return True
else: return False
def create(self):
b = B()
b.foobar()
class B(A):
def __init__(self):
self.foo = 0
def foobar(self):
while super().check_flag() == False:
`print("Works"`)
if __name__ == "__main__":
a = A()
a.create()
Я получаю сообщение об ошибке: AttributeError: объект 'B' не имеет атрибута 'flag'
Я в основном хочу, чтобы объект B вызывал функцию из своего конкретного родительского объекта A. Что я здесь делаю не так?
Обновлено: я должен указать, что флаг родительского объекта может быть изменен другой функцией, поэтому дочерний объект должен постоянно проверять, каков статус этого флага. Я могу попробовать использовать потоки, но я уверен, что есть более простой способ использовать super ().
Вы все равно не должны звонить в super().check_flag(), вы должны звонить в self.check_flag().
Пожалуйста, проверьте повторяющийся отмеченный вопрос, первый ответ показывает, как инициализировать конструктор родительского класса (__init__).






Вы должны вызвать конструктор
AизB.