@JO_JO

Почему не работает код на Python?

class House():
"""описание дома"""
def __init__(self, street, number):
"""свойства дома"""
self.street = street
self.number = number
self.age = 8

def build(self):
"""строит дом"""
print(" Дом на улице " + self.street + " под номером " + str(self.number) + " построен ")
def age_of_house(self, year):
"""возраст дома"""
self.age += year

class ProspectHouse(House):
"""Дома на проспекте"""
def __init__(self, prospect, number):
super().__init__(self.number)
self.prospect = prospect

PrHouse = ProspectHouse("Ленина", 1)
print(PrHouse.prospect)

Написал код, выдаёт 2 ошибки:

line 24, in
PrHouse = ProspectHouse("Ленина", 1)

line 20, in __init__
super().__init__(self.number)
AttributeError: 'ProspectHouse' object has no attribute 'number'
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Во-первых, оформи код кнопкой </>, а то нечитаемо.
Во-вторых, дело в строке
super().__init__(self.number)
К этому моменту в self ещё нет ни одного атрибута. Унаследованный вызов __init__() создаст number и остальные - но ты пытаешься обратиться к self.number до этого вызова.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Bon_ju
Поставьте запятую после self:
super().__init__(self, number)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы