Questo è legato a "Estendi è il male" rispetto a OCP? ma separato perché l'idea di "implementare l'interfaccia" non esiste in Python.
Sto scrivendo un corso per estrarre alcuni dati da una pagina web. Avrà bisogno di conservare un cookie per l'autenticazione, quindi userò un oggetto requests.Session
in qualche modo. Non sono mai sicuro di come affrontare questo - qual è la scelta appropriata qui?
class FooFetcher(requests.Session):
def __init__(self):
super.__init__()
o
class FooFetcher(object):
def __init__(self):
self.session = requests.Session()
Il primo sembra finire con FooFetcher
che ha molto più metodi pubblici del necessario. Quest'ultima sembra che potrebbe essere inutilmente complicata, dal momento che praticamente ogni metodo di FooFetcher
coinvolgerà una chiamata a un metodo di quell'oggetto Session
, più forse un po 'di analisi di JSON che trova.