ошибка __main__.Class object at 0x0000018300283D00

Dmitriy-0

Новичок
Пользователь
Мар 29, 2022
4
1
3
ОС Виндоус 10, язык Python, PyCharm Community Edition 2021.3.3
Ошибка в определении объекта класса. Синтаксис проверил, вроде все верно. Проверил раз 200 наверное :)
Собственно выдает такую ошибку:
<__main__.ProspectHouse object at 0x0000018300283D00> SolnwechnayaLenina
Process finished with exit code 0


код следующий:

Python:
class House():
    """описание класса Дом"""
    def __init__(self, town, street, number):
        """def - от слова дефайн - определение, определение функции. Здесь описываются свойства дома"""
        self.town = town
        self.street = street
        self.number = number
        """присвоенное значение, можно не описывать элемент в объявлении Деф"""
        self.age = 1

    def build(self):
        """эта функция класса просто выводит сообщение"""
        print("Дом в городе " + self.town + " на улице " + self.street + " номер " + str(self.number) + " построен")

    def age_of_house(self, year):
        """эта функция класса тупо прибавляет некое значение """
        self.age +=year

    """теперь накидаем два объекта класса House"""
House1 = House("Kirov", "Moskovskaya", 156)
House2 = House("Moskow", "Kirova", 17)

print(House1.town, House2.number, House1.age)
House1.build()
House2.age_of_house(7) 
print(House1.age, "\n", House2.age)

"""Субкласс на основе класса House"""
class ProspectHouse(House):
    """Что то берем от Супер-класса, а что то свое"""
    def __init__(self, town, number, prospect):
        super().__init__(self, town, number)
        self.prospect = prospect

"""Объект класса prospect"""
Prospect1 = ProspectHouse("Samara", 24, "SolnwechnayaLenina ")
print(Prospect1.town, Prospect1.prospect)
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
974
220
43
21
Москва
Ты в super().__init__() должен передать 3 значения:
town, number, prospect
и первым значением ты передаешь self, то есть сам объект, он и записывается в town. Передай нужные аргументы и все заработает
 
  • Мне нравится
Реакции: Dmitriy-0

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
974
220
43
21
Москва
И лучше в тройных кавычках писать только docstring (строка описывающая функцию / класс) или многострочный текст, в остальных случаях использовать #
 
  • Мне нравится
Реакции: Dmitriy-0

Dmitriy-0

Новичок
Пользователь
Мар 29, 2022
4
1
3
Ты в super().__init__() должен передать 3 значения:
town, number, prospect
и первым значением ты передаешь self, то есть сам объект, он и записывается в town. Передай нужные аргументы и все заработает
Спасибо, точно заработало (y) Я просто видел пояснение что без self будет ошибка, и даже видел как у человека выдало ошибку. Поэтому зациклился на написание с ней. Спасибо еще раз, теперь более понятно наследование.
 
  • Мне нравится
Реакции: Vershitel_sudeb

Форум IT Специалистов