@Marina1802

Почему ошибка в коде Python?

Не могу понять, почему ошибка. А еще мне нужно впихнуть в код магический метод.

class Pet:
    	def __init__(self, name, colour):
    		self.__name = name
    		self.__colour = colour
    @property
    def colour(self):
    	return self.__colour
    
    @colour.setter
    def set_age(self, colour):
    	if colour in range("grey"):
    		self.__colour = colour
    	else:
    		print("Такого кота не существует")
    @property
    def name(self):
            return self.__name
             
    def display_info(self):
        print("Имя:", self.__name, "Цвет:", self.__colour)
    
    
    marsik = Pet("Marsik", "grey")
    
    #marsik.display_info *здесь ошибка*
    marsik.colour = "grey"
    print(marsik.colour)
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
@MEDIOFF
Python Developer
Ну во первых просьба вставлять код нормально, через блок code, во вторых первая ошибка у вас
def display_info(self):
print("Имя:", self.__name, "Цвет:", self.__colour)

это функция, забыли скобки
marsik.display_info()
Вторая:
marsik.colour = "grey"
у вас свойство colour это property, функция сеттер должна называться абсолютно так же как и геттер т.е не set_age а colour;
В третьих что вообще за set_age?;
В четвертых
if colour in range("grey")
Вы понимаете что значит эта строчка и для чего функция range?
Вам надо бы основы подучить и все вопросы сами собой отпадут
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы