Ho il seguente codice:
class Car(object):
def __init__(self, my_id):
self.my_id = my_id
self.color = color
self.brand = brand
self.get_color()
self.get_brand()
def get_color():
return requests.get('https://example.com/{}/color'.format(self.my_id))
def get_brand():
return requests.get('https://example.com/{}/brand'.format(self.my_id))
def get_description(car):
return 'My {} is {}'.format(car.brand, car.color)
def get_color(car):
return 'My car is {}'.format(car.color)
def main():
c = Car(123)
print get_description(c)
Funziona piuttosto bene inizializzando inizialmente un oggetto Car
che raccoglie tutti i dati necessari e quindi permettendomi di lavorare con quei dati attraverso le funzioni di prima classe.
Tuttavia, mi piacerebbe spostare tutte quelle funzioni in una classe separata Description
. Questa classe, poiché utilizza una serie di dati di Car, verrebbe inizializzata come:
class Description(object):
def __init__(self, car):
self.car = car
self.description_text = description_text
self.color_text = color_text
in cui l'istanza car
viene passata come argomento all'oggetto Description
nell'istanza.
Mi è stato detto, tuttavia, che questo approccio non è il migliore dal momento che le due classi sono ora strettamente accoppiate.
Come dovrebbe essere rielaborato questo esempio per utilizzare due classi? Dovrebbe Description
ereditare i dati da Car
? Devo istanziare Description
passando tutti i dati da Car
?