В следующих скриптах, написанных на Python, я хотел вычислить площади круга, квадрата и прямоугольника. Из которых я хотел реализовать наследование от square.py к rectangle.py. Однако моя реализация наследования не удалась, и мне нужна помощь, чтобы решить эту проблему.
Когда я попытался вычислить площадь прямоугольника, я получил следующее сообщение об ошибке для записи.
Traceback (most recent call last):
File "script.py", line 28, in <module>
print(rectangle.sqArea())
File "/home/yosuke/Dropbox/Coding_dir/Python/Originals/OOP/Mathmatics/testdir2/rectangle.py", line 8, in sqArea
return self.length * self.height
AttributeError: 'Rectangle' object has no attribute 'length'
script.py
from circle import Circle
from square import Square
from rectangle import Rectangle
category = {1:"Shapes", 2:"DST"}
for k,v in category.items():
print(k, v)
catNum = int(input("Type a category by number>> "))
if catNum == 1:
print("You chose shapes")
shapeDict = {1:"Circle", 2:"Square"}
for k,v in shapeDict.items():
print(k, v)
shapeNum = int(input("Select a shape by number>> "))
if shapeNum == 1:
radius = int(input("type a number>> "))
circle1 = Circle(radius)
print(circle1.cirArea())
if shapeNum == 2:
length = int(input("Type the length>> "))
square = Square(length)
print(square.sqArea())
print("Let's try rectangle too")
height = int(input("Type the height>> "))
rectangle = Rectangle(height)
print(rectangle.sqArea())
if catNum == 2:
print("Not yet finished!")
circle.py
class Circle:
def __init__(self, radius):
self.radius = radius
def cirArea(self):
return self.radius * self.radius * 3.14
square.py
class Square:
def __init__(self, length):
self.length = length
def sqArea(self):
return self.length * self.length
rectangle.py
from square import Square
class Rectangle(Square):
def __init__(self, height):
self.height = height
def sqArea(self):
return self.length * self.height