Hallo! Es ist Nukosuke! Python hat eine eingebaute Bibliothek, die dynamisch ein Modul namens importlib importiert, aber ich habe meine eigene Bibliothek erstellt, um die Verwendung zu vereinfachen!
Durch Angabe des Paketnamens können Sie die Module unter ** dynamisch importieren und dann das im Modul definierte Klassenobjekt abrufen! ** ** ** Insbesondere können Sie den folgenden Python-Code schreiben!
project/
├ example.py
└ validator/
├ validator_a.py
├ validator_b.py
└ validator_c.py
class ValidatorA:
#Gleiches gilt für b und c
def valildate(self, input):
#Validierungsprozess
from autoload.module_loader import ModuleLoader
input = "foo bar baz"
loader = ModuleLoader()
#Lädt automatisch Module unter Validator und gibt eine Liste von Klassenobjekten wie ValidatorA zurück
validator_classes = loader.load_classes("validator")
try:
#Instanziieren Sie ein Klassenobjekt und führen Sie eine Methode aus
[clazz().validate(input) for clazz in validator_classes]
except:
print("input is invalid!!")
** Es ist sehr nützlich, wenn Sie etwas zusammen machen wollen! ** ** ** Das Folgende wird als konkretes Anwendungsszenenbeispiel angenommen.
Bei der Implementierung einer Pipeline sieht es folgendermaßen aus: (Dies ist ein Bild der parallelen Erfassung und Verarbeitung von Daten.)
project/
├ example.py
└ pipelineA/
├ get_data_a.py
└ processing_data_a.py
└ pipelineB/
├ get_data_b.py
└ processing_data_b.py
from autoload.module_loader import ModuleLoader
package_names = ("pipelineA", "pipelineB")
loader = ModuleLoader()
#Dies ist eine parallele Verarbeitung
for package_name in package_names:
GetData, ProcessingData = loader.load_classes(package_name)
data = GetData().get()
processed_data = ProcessingData().process(data)
Informationen zur Verwendung finden Sie auf dieser Seite.
Ursprünglich habe ich persönlich eine Website erstellt, die die Empfehlungsstufe von Büchern bewertet und einführt, aber ich wende verschiedene Validierungsmuster auf die Buchdaten an Ich musste.
Ich habe auf verschiedene Weise gegoogelt und gedacht, ich könnte für jedes Validierungsmuster ein Modul erstellen und es dynamisch importieren, um ein gutes Gefühl zu erzeugen und die Validierung auszuführen, aber es schien nicht so zu sein, dass ich es selbst gemacht habe!
Ich habe es selbst gemacht, aber ich dachte, es könnte für allgemeine Zwecke verwendet werden, also habe ich es als Bibliothek veröffentlicht!
Ein Beitrag ist willkommen, da es noch einige Dinge gibt, die nicht ausreichen!
Recommended Posts