Scrivo regolarmente script CLI eseguibili con CLI 3 per eseguire la compilazione dei dati e alcune attività di manutenzione, e provare ad aderire a PEP 8 e la Guida di stile di Google Python quando lo fai. La guida di Google dice di evitare l'uso di variabili globali, mentre PEP 8 offre convenzioni di denominazione, ma in realtà non incoraggia o scoraggia l'uso di esse, quindi non le uso.
Tuttavia, ultimamente mi sono trovato a utilizzare un'opzione "verbose" / passare molto insieme a una funzione " printv
" da utilizzare durante il debug. Di solito assomiglia a questo:
def printv(opts, msg, **kwargs):
if opts.verbose: print(msg, **kwargs)
Come incredibilmente pigro come sono, mi piacerebbe farlo in modo che non debba passare l'argomento opts
(che è un oggetto OptionParser
) a printv
. Il metodo più semplice sarebbe usare una variabile globale, certo. Un altro pensiero che ho avuto sarebbe stato quello di impostare una variabile "VERBOSE" in os.environ
, poiché l'interruttore è, concettualmente, apportando una modifica all'ambiente di esecuzione. Ovviamente è contro-intuitivo, ma è pitonico?