Heim > Artikel > Backend-Entwicklung > Detaillierte Einführung in die Methode zum dynamischen Laden von Paketen in Python
Das Beispiel in diesem Artikel fasst die Methode zum dynamischen Laden von Paketen in Python zusammen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Es gibt drei Möglichkeiten, Module dynamisch zu laden
1. Verwenden Sie die Systemfunktion __import_. ()
stringmodule = __import__('string')
2. Imp-Modul verwenden
import imp stringmodule = imp.load_module('string',*imp.find_module('string')) imp.load_source("TYACMgrHandler_"+app.upper(), filepath)
3 . Verwenden Sie exec
import_string = "import string as stringmodule" exec import_string
Ob die Variable existiert
1. t')
2 . 'var' in locals().keys()
3. 'var' in dir()
4 🎜>
class Obj(object): pass def main(): list=["a","b", "c"] for i inrange(1,len(list),2): Obj = type('Obj',(),{list[i]:lambdaself,s:obj.__setattr__(s.split(" = ")[0],s.split(" = ")[1])}) obj =Obj() for i inrange(0,len(list),2): obj.__setattr__(list[i],list[i]) obj.a =1 obj.b("a =2") obj.b("c =3") printobj.a printobj.c if __name__ == '__main__': main()Dynamisches Ladepaket:
def test(s,e): print s print e class C(): def __init__(self,name): print name def test(self): print 'class!!!'Ladecode:
class Dynload(): def __init__(self,package,imp_list): self.package=package self.imp=imp_list def getobject(self): return __import__(self.package,globals(),locals(),self.imp,-1) def getClassInstance(self,classstr,*args): return getattr(self.getobject(),classstr)(*args) def execfunc(self,method,*args): return getattr(self.getobject(),method)(*args) def execMethod(self,instance,method,*args): return getattr(instance,method)(*args) #Test: dyn=Dynload('util.common',['*']) ins=dyn.getClassInstance('C','gao') dyn.execMethod(ins,'test') dyn.execfunc('test','Hello','function!')Laden Die angegebene Datei basierend auf ihrem Namen