Rectangle:6
Square:4
Ellipse:18.84
Circle:12.56
という結果を表示させたいが、
Rectangle:0
Square:0
Ellipse:0
Circle:0
になってしまいなぜかわかりません。
また、PIを継承して使いたいのですが、やり方が分からないです。
Python
1class Shape(object): 2 def get_area(self): 3 return 0 4 5 def get_type(self): 6 return "" 7 8 def __str__(self): 9 return "{}:{}".format(self.get_type(), self.get_area()) 10 11class Rectangle(Shape): 12 13 def __init__(self,w,h):#ここにコードを書く 14 self.wide = w 15 self.hight = h 16 def get_area(): 17 return self.wide * self.hight 18 19 def get_type(self): 20 return "Rectangle" 21 22class Square(Rectangle): 23 def __init__(self, l): 24 25 self.length = l #ここにコードを書く 26 def get_area(): 27 return self.length * self.length 28 29 def get_type(self): 30 return "Square" 31 32class Ellipse(Shape): 33 PI = 3.14 34 35 def __init__(self,a,b):# ここにコードを書く 36 self.major_axis = a 37 self.minor_axis = b 38 def get_area(): 39 return 3.14* self.major_axis * self.minor_axis #PIを継承したいがうまくいかないので3.14で表記 40 def get_type(self): 41 return "Ellipse" 42 43class Circle(Ellipse): 44 def __init__(self, r): 45 46 self.radius = r #ここにコードを書く 47 def get_area(): 48 return 3.14 * self.radius * self.radius #PIを継承したいがうまくいかないので3.14で表記 49 def get_type(self): 50 return "Circle" 51 52shapes = [Rectangle(2, 3), Square(2), Ellipse(2, 3), Circle(2)] 53for shape in shapes: 54 print(shape)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。