È meglio memorizzare lo stato in una variabile globale o in una coroutine, in particolare in Python? Non capisco le migliori pratiche qui.
Ad esempio, considera un semplice script Flask:
from flask import Flask
...
app = Flask(__name__)
### GLOBAL MEMORY ############ OPTION 1
exmple_variable = 'contents of some file or something.'
### COROUTINE ############### OPTION 2
def get_example_variable():
a = yield
while True:
yield a
exmple_variable_coroutine = get_example_variable()
next(exmple_variable_coroutine)
exmple_variable_coroutine.send('contents of some file or something.')
### PAGES ####################
@app.route('/') # uses option 1
def page_home():
return render_template('index.html', example=example_variable)
@app.route('/index') # uses option 2
def page_index():
return render_template('index.html', example=next(exmple_variable_coroutine))
if __name__ == '__main__':
app.run()
Quindi hai una piccola app Flask con le due opzioni delineate. In un caso come questo, sarebbe meglio usare la coroutine o usare la variabile globale?
La variabile che rappresenta l'hook della coroutine exmple_variable_coroutine
è essenzialmente una variabile globale stessa. Quindi non sono sicuro che tutta questa complessità aggiunta aiuti molto. Con la crescita di questo progetto, forse c'è qualche valore aggiunto, ma non so cosa sarebbe.