5 Stimmen

Ändern einer Funktionsimplementierung in Python

Ich schreibe ein Modul, das eine Funktion zur Verfügung stellt und einen Initialisierungsschritt benötigt, jedoch aufgrund bestimmter Einschränkungen muss ich beim ersten Aufruf initialisieren, so dass ich auf der Suche nach dem richtigen Idiom in Python, die mir erlauben würde, um loszuwerden, die bedingte.

#with conditional
module.py
initialized = False
def function(*args):
   if not initialized: initialize()
   do_the_thing(*args)

Ich möchte diese Bedingung mit etwas wie diesem loswerden (es funktioniert nicht):

#with no conditional
module.py
def function(*args):
   initialize()
   do_the_thing(*args)
   function = do_the_thing

Mir ist klar, dass ich nicht einfach Namen im Modul verwenden und sie zur Laufzeit ändern kann, da Module mit from module import function wird niemals mit einer function=other_fun im Inneren des Moduls.
Gibt es also ein pythonisches Idiom, das dies auf die richtige Art und Weise tun könnte?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X