Für Java funktioniert die Abhängigkeitsinjektion als reines OOP, d. H. Sie stellen eine Schnittstelle zur Verfügung, und in Ihrem Rahmencode akzeptieren Sie eine Instanz einer Klasse, die die definierte Schnittstelle implementiert. Wie würden Sie es dann auf pythonische Weise implementieren?
Code: Select all
class FrameworkClass():
def __init__(self, ...):
...
def do_the_job(self, ...):
# some stuff
# depending on some external function
Der naivste (und vielleicht das beste?) besteht darin, die externe Funktion in die FrameworkClass Konstruktor zu erfüllen und dann aus der Methode der Do_the_job aufgerufen zu werden. Code:
Code: Select all
class FrameworkClass():
def __init__(self, func):
self.func = func
def do_the_job(self, ...):
# some stuff
self.func(...)
Code: Select all
def my_func():
# my implementation
framework_instance = FrameworkClass(my_func)
framework_instance.do_the_job(...)
< /code>
Frage < /h1>
Gibt es eine bessere, häufig verwendete pythonische Möglichkeit, dies zu tun? Oder vielleicht irgendwelche Bibliotheken, die solche Funktionen unterstützen? In diesem Framework werden eine vom Token erhaltene ID