Ik heb objectgeoriënteerd programmeren modellering voor geometrische vormen. Ik heb toe te voegen methode om in elke klasse als ik wil twee geometrische vormen optelt, maar ik heb in elk subklasse gedefinieerd. Hoe kan ik de uitvoering van de methode add in de bovenliggende klasse, zodat ik niet te definieerde voor elke subklassen?
import numpy as np
class Shape(object):
def __repr__(self):
return type(self).__name__
def __str__(self):
return type(self).__name__
class Circle(Shape):
# constructor
def __init__(self, radius):
self.radius = radius
def __add__(self, other):
if type(other) == int:
self.radius = self.radius + other
else:
newRadius = self.radius + other.radius
return Circle(newRadius)
def __radd__(self, other):
return self.__add__(other)
def area(self):
return np.pi * self.radius**2
class Rectangle(Shape):
# constructor
def __init__(self, width,height):
self.width , self.height = width, height
def __add__(self, other):
if type(other) == int:
self.width = self.width + other
self.height = self.height + other
else:
newWidth = self.width + other.width
newHeight = self.Height + other.Height
return Rectangle(newWidth,newHeight)
def __radd__(self, other):
return self.__add__(other)
def area(self):
Function to compute the area of triangle.
return self.width * self.height