【发布时间】:2014-09-07 08:49:33
【问题描述】:
这就是问题所在,
定义类 Rectangle。它的构造函数采用一对代表左上角的数字,以及另外两个代表宽度和高度的数字。它有以下方法:
get_bottom_right() - 将右下角作为一对数字返回。
move(p) - 移动矩形,使 p 成为左上角(保持宽度和高度不变)。
resize(width, height) - 将矩形的宽度和高度设置为提供的参数(保持左上角不变)。
__str__() - 以一对对的形式返回矩形的字符串表示形式 - 即左上角和右下角。
注意:与您之前可能遇到的坐标系不同,在这个问题中,y 会随着您垂直向下移动而增加。
示例: 下面的每个示例都继承于前一个示例。 小心为 str 设置正确的间距 - 即逗号后跟空格。
r = Rectangle((2,3), 5, 7)
str(r)
*'((2, 3), (7, 10))'*
r.move((5,6))
str(r)
'((5, 6), (10, 13))'
r.resize(2,3)
str(r)
*'((5,6), (7, 9))'*
r.get_bottom_right()
*(7, 9)*
这是我的回答:
class Rectangle():
def __init__(self, coords, sizex, sizey):
self._startx, self._starty = coords
self._sizex = sizex
self._sizey = sizey
def get_bottom_right(self):
print '(%s, %s)' % (self._startx + self._sizex, self._starty + self._sizey)
def move(self, pos):
self._startx, self._starty = pos
def resize(self, width, height):
self._sizex = width
self._sizey = height
def __str__(self):
return '((%s, %s), (%s, %s))' % (self._startx, self._starty, self._startx + self._sizex, self._starty + self._sizey)
r = Rectangle((2, 3), 5, 7)
str(r)
r.move((5,6))
str(r)
r.resize(2,3)
str(r)
r.get_bottom_right()
我得到了正确的答案,但作业系统说我错了。
错误:Rectangle 类应该继承自对象类
谁能告诉我哪里错了?
【问题讨论】:
标签: python class inheritance