2015-12-02 4 views
0

Мне присвоено задание, связанное с объектно-ориентированным программированием. Два небольших функций в классе попросить, чтобы иметь возможность отобразить свойства объекта двумя различными способамиСвойства печати объекта двумя способами

>>> r1 
Rectangle(Point(0,0),Point(1,1),'blue') 

и

>>> print(r1) 
I am a blue rectangle with bottom left corner at (2, 3) and top right corner at (2, 3). 

Вот код, который я написал для обоих, но для некоторых причина, по которой только возвращение sentece, а не другой:

def __repr__(self): 
    return 'I am a '+str(self.color)+' rectangle with bottom left corner at '+str(self.p1.get())+' and top right corner at '+str(self.p2.get())+'.' 

def __str_(self): 
    return 'Rectangle('+str(self.p1)+','+str(self.p2)+','+str(self.color)+')' 

, но когда я проверить это мои результаты дисплея:

>>> r1 
I am a red rectangle with bottom left corner at (0, 0) and top right corner at (1, 1). 
>>> print(r1) 
I am a red rectangle with bottom left corner at (0, 0) and top right corner at (1, 1). 

Что я здесь делаю неправильно?

+0

Вы можете уточнить больше? –

+0

@IronFist Моя программа возвращает только предложение «Я ...», а не оператор «Прямоугольник» –

+0

Вам не хватает нижнего подчеркивания в вашем методе '__str__'; то есть вы определили новый метод '__str_', а не переопределяете' __str__'. – chepner

ответ

0

Вы отсутствуете в __str_ в _ должно быть __str__

Смежные вопросы