Ich habe ein Modul, das ich importieren und bestimmte Variablenwerte in der importierten Instanz dieses Moduls ändern und dann ausführen muss.Wie man ein Modul importiert und einen Variablenwert innerhalb des Moduls ändert und ausführt
Bitte beachten Sie, dass ich kann keine einzige Änderung an dem Modul aus alten Gründen zu importieren. Hier
ist das, was ich zu tun versucht:
sagen das Modul i importieren möchten, a.py, sieht aus wie
var1 = 1
var2 = 2
if __name__ == '__main__':
print var1+var2
Jetzt habe ich dies in b.py bin importieren, um den Anrufer Skript. Ich versuche, es zu importieren, ändere Wert von Variable var1 und führe es als Hauptprogramm mit runpy wie folgt aus.
import runpy
import a
a.var1 = 2
result = runpy._run_module_as_main(a.__name__)
Aber diese druckt das Ergebnis als 3
nur und nicht so 4
wie erwartet.
Jeder andere Weg, um dies zu erreichen (abgesehen von runpy verwenden), ohne etwas in a.py zu ändern? Offen für jedes Modul von Drittanbietern, wenn ich keine Änderungen an dem importierten Modul vornehmen muss.
ich verwende Python 2.6
Wenn Sie * wirklich * dies tun möchten, werden Sie das 'ast' Modul benötigen, glaube ich. –
@WayneWerner bitte lassen Sie mich wissen, wie – MohitC
Sie * wirklich * sollte dies nicht tun und nur eine Klasse statt. –