老师您帮我看看这个代码的问题出在哪?
来源:2-6 编程练习
WU_JIE
2019-12-21 20:18:27
class Point(object):
# 自定义Point类的构造(初始化)方法
def __init__(self, x, y):
self.X = x
self.Y = y
# 自定义Point类对象的格式化输出函数(string())
def string(self):
print('该图形的初始化点为:{x:{0},y:{1}}'.format(self.x, self.y), end = ';')
class Circle(Point):
# 自定义Circle类的构造(初始化)方法
def init(x, y, r):
super(Point, self).__init__(self ,x ,y)
self.r = r
# 自定义Circle类对象的格式化输出函数(string())
def string(self):
super(Point, self).string(self)
print('半径为:{0}'.format(self.r))
class Size(object):
# 自定义Size类的构造(初始化)方法
def size(self, width, height):
self.width = width
self.height = height
# 自定义Size类对象的格式化输出函数(string())
def string(self):
print('长宽分别为:{{0},{1}}'.format(self.width, self.height))
class Rectangle(Point, Size):
def init(x, y, width, height):
Point.__init__(self, x, y)
Size.__init__(self, width, height)
# 自定义Rectangle类的构造(初始化)方法,并在方法中调用父类的初始化方法以完成初始化
def string(self):
Point.string(self)
Size.string(self)
# 自定义Rectangle类对象的格式化输出函数(string())
if __name__ == "__main__":
# 实例化Circle对象,圆心为(5,5),半径为8
c = Circle(5, 5, 8)
# 实例化Rectangle对象,顶点位置(15,15),长和宽分别为15和15
r1 = Rectangle(15, 15, 15, 15)
# 实例化Rectangle对象,顶点位置(40,30),长和宽分别为11和14
r2 = Rectangle(40, 30, 11, 14)
c.string()
r1.string()
r2.string()
1回答
同学,你好。
1、Point()类中在输出实例属性时,应为大写的X和Y。另当使用format格式化时,字符串中需要使用大括号时可以使用大括号进行转义。
2、Circle()类的初始化方法应为__init__(),在调用父类初始化方法时,不需要传self参数。
string()方法中调用父类的string()方法时,super中应写子类Circle,不需要写self参数
3、Size()类的初始化方法为__init__()
4、Rectangle()初始化方法为__init__,第一个参数为self
同学在写完代码后,可以先运行下,根据控制台中的报错信息找到对应的代码进行修改。
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
相似问题