Supponiamo che abbia una funzione f
che utilizza due funzioni di aiuto h
e g
per portare a termine il lavoro. Ci sono due modi possibili per affrontare questa situazione.
(1) accetta argomenti espliciti e restituisce nuovi oggetti da ciascuna funzione di aiuto:
def f(x):
def h(x):
<do something>
return y
def g(y):
<do something else>
return z
return g(h(x)) \ x remains unchanged
(2) usa l'ambito di f
per accedere e mutare l'argomento originale finché non si trova allo stato desiderato:
def f(x):
def h():
<do something>
def g():
<do something else>
h()
g()
return x \ x is now different
Mi piace la situazione (1) perché pensa che sia più facile capire cosa sta succedendo, ma in realtà non ho motivi concreti per spiegare perché (1) sia migliore di quanto non abbia più senso per me.
Qual è il modo giusto di pensarci?