Estoy escribiendo un módulo que proporciona una función y necesita un paso de inicialización, sin embargo debido a ciertas restricciones que necesito inicializar en la primera llamada, entonces estoy buscando el idioma apropiado en python que permita yo para deshacerme del condicional.Cambiando una implementación de función en Python
#with conditional
module.py
initialized = False
def function(*args):
if not initialized: initialize()
do_the_thing(*args)
me gustaría deshacerse de ese condicional con algo como esto (que no funciona):
#with no conditional
module.py
def function(*args):
initialize()
do_the_thing(*args)
function = do_the_thing
Soy consciente de que no puedo usar nombres en el módulo y cambiarlos en tiempo de ejecución porque los módulos que usan from module import function
nunca se verán afectados con un function=other_fun
dentro del módulo.
Entonces, ¿hay algún idioma pitónico que pueda hacer esto de la manera correcta?
en Google de 'pitón decorador' – Triptych
No veo cómo un decorador podría hacer esto, el condicional sigue siendo allí si prueba la solución @graphox, usando un generador funciona como se espera, aunque se siente un poco raro. –