还请帮忙指出代码问题

来源:6-2 编程练习

绿皮皮与伊人

2021-07-27 21:32:04

class Point(object):
# 自定义Point类的构造(初始化)方法
   def __init__(self,x,y):
self.x=x
self.y=y
def string(self):
print('X{}, Y{}'.format(self.x,self.y))

# 自定义Point类对象的格式化输出函数(string())

class Circle(Point):
def __init__(self, x,y,radius):
self.radius=radius

# 自定义Circle类的构造(初始化)方法

# 自定义Circle类对象的格式化输出函数(string())
   def string(self):
print('该图形初始化点为:X{}, Y{}; 半径为:{}'.format(self.x,self.y,self.radius))
class Size(object):


# 自定义Size类的构造(初始化)方法
   def __init__(self,width,height):
self.width=width
self.height=height
# 自定义Size类对象的格式化输出函数(string())
   def string(self):
print('Width{}, Height{}'.format(self.width,self.height))
class Rectangle(Point, Size):


# 自定义Rectangle类的构造(初始化)方法,并在方法中调用父类的初始化方法以完成初始化
   def __init__(self,x,y,width,weight):
super(Rectangle, self).__init__(x,y,width,weight)

# 自定义Rectangle类对象的格式化输出函数(string())
   def string(self):
print('Width{}, Height{}'.format(self.width,self.height))
if __name__ == "__main__":
# 实例化Circle对象,圆心为(5,5),半径为8
   c=Circle(5,5,8)
c.string()
# 实例化Rectangle对象,顶点位置(15,15),长和宽分别为1515
   
   r1=Rectangle(15,15,15,15)
# 实例化Rectangle对象,顶点位置(40,30),长和宽分别为1114
   r2=Rectangle(40,30,11,14)


写回答

1回答

好帮手慕念

2021-07-28

同学,你好!代码中有以下几个问题

(1)报错显示属性错误:‘Circle’对象没有属性‘x’

http://img.mukewang.com/climg/6100b8a209d6af6409630236.jpg

解决方案:需要使用super()调用父类的__init__方法,如下图

http://img.mukewang.com/climg/6100b915097ddb1e04870139.jpg

(2)报错显示类型错误:__init__()接受3个位置参数,但给出了5个

http://img.mukewang.com/climg/6100c1f70915c3a507840221.jpg

当子类Rectangle同时继承多个父类时,super()会调用第一个父类Point的__init__方法,因此会报错。需要使用Size.__init__()方式调用,如下图

http://img.mukewang.com/climg/6100ba4f099efe9f08150238.jpg

(3)输出格式及输出内容

http://img.mukewang.com/climg/6100c5d6098d3d1503990039.jpg

可以使用%进行格式化

http://img.mukewang.com/climg/6100c585095bb17c06490262.jpg

http://img.mukewang.com/climg/6100c4ff096ad8cf06360254.jpg

最后使用两个Rectangle实例化对象r1和r2,调用string()方法

http://img.mukewang.com/climg/6100c61c093582d906280211.jpg

http://img.mukewang.com/climg/6100c5fd098419cc07080122.jpg

祝学习愉快!


0

0 学习 · 4469 问题

查看课程