Al momento ho il codice come questo:Un'alternativa al globale in Python
cache = 1
def foo():
global cache
# many
# lines
# of code
cache = 2
Tuttavia, questo può portare a difficili da trovare-bugs in futuro, perché il lettore non può notare che global cache
appare da qualche parte sopra cache = 2
. In alternativa, un contributore potrebbe erroneamente aggiungere def bar(): cache = 2
e dimenticare di aggiungere global cache
.
Come posso evitare questo trabocchetto?
Che cosa è esattamente il trabocchetto? Cosa stai cercando di realizzare e cosa non funziona? – BrenBarn
Cosa succede se qualcuno scrive il secondo metodo? Sarà ancora una variabile locale. Non c'è nessun problema con il tuo codice. – ATOzTOA
Se non c'è una dichiarazione 'global', la variabile è locale - se 'il lettore' ha uno sfondo in python, allora sapranno che è locale. Se vuoi davvero, basta aggiungere un commento dicendo che è locale o qualcosa del genere. – Volatility