In Python non esiste la parola riservata abstract ma si ottiene un comportamento, in qualche modo, analogo con qualche stratagemma come, ad esempio, scatenando un'eccezione qualora venga invocato un metodo astratto.
from math import pi
class Colore:
def __init__(self, rosso=0, verde=0, blue=0):
self.rosso = rosso
self.verde = verde
self.blue = blue
class FiguraGeometrica:
def __init__(self, x, y, colore):
self.x = x
self.y = y
self.colore = colore
def disegna(self):
raise "Metodo Astratto!"
def getArea(self):
raise " Metodo Astratto!"
def sposta(self, x, y):
self.x += x
self.y += y
class Cerchio(FiguraGeometrica):
def __init__(self, x, y, raggio, colore):
FiguraGeometrica.__init__(self, x, y, colore)
self.raggio = raggio
def disegna(self):
pass # Esegue il disegno della figura
def getArea(self):
return int(pi * self.raggio)
class Rettangolo(FiguraGeometrica):
def __init__(self, x, y, base, altezza, colore):
Shape.__init__(self, x, y, colore)
self.base = base
self.altezza = altezza
def disegna(self):
pass # Esegue il disegno della figura
def getArea(self):
return self.base * self.altezza