Ich möchte in der Lage sein, eine Klassenreferenz von einem dynamisch angegebenen Modul dynamisch anzugeben und diese Klassenreferenz an eine Drittanbieterbibliothek zu übergeben, die sie dann verwendet. Aber ich möchte nicht die Klasse selbst (und damit die __init__
Methode in der Klasse) aufrufen, wenn ich das tue, das ist für die Bibliothek zu tun.So erhalten Sie eine Klassenreferenz in Python ohne Aufruf von __init__
Im Moment habe ich dies:
import importlib
import thirdpartylib
# Load the module
the_module = importlib.import_module('my_module')
# Now the class
the_class = getattr(the_module, 'MyClass')()
thirdpartylib.process(the_class)
Aber natürlich getattr()
läuft die __init__
Methode, die ich nicht will.
Wie übergebe ich einen Verweis auf eine Klasse, ohne eine Instanz zu erstellen und __init__
auszulösen?
Instanz wird wegen '()', nicht 'getattr' zurückgegeben. –
@AshwiniChaudhary - Danke; das ist es; ein Versehen meinerseits; Ich habe diese vermisst. Sende es als Antwort, wenn du willst und ich akzeptiere es. –