Se ho bisogno di avere una funzione, esegui qualche elaborazione per inizializzare più variabili dell'oggetto (sto avendo difficoltà a trovare un semplice esempio che non sembri strano).
Quale dei seguenti modelli è preferibile?
class foo( object ):
def __init__(self, bar, bar2):
self.bar = bar
self.baz, self.square_baz = self.func(bar2)
def func(self, bar2):
return self.bar + bar2, bar2 * ba2
o
class foo( object ):
def __init__(self, bar, bar2):
self.bar = bar
self.func(bar2)
def func(self, bar2):
self.baz = self.bar + bar2
self.square_baz = bar2 * bar2
Mi sento come nel primo modello, il costruttore __init__
e l'elaborazione func
sono ben disaccoppiati. Ed è facile dire quali variabili conterranno ciascuna istanza di foo
. D'altra parte, dover restituire più variabili da una funzione per assegnarle a un oggetto sembra ... brutto, tuttavia questa sembra essere una conseguenza della libreria che sto usando.