Kannst ja mal ueber diesen Ausdruck meditieren:
Code: Alles auswählen
python -c "import sys; import pprint; pprint.pprint(sys.modules); pprint.pprint(dir(sys.modules['__main__']))"
Code: Alles auswählen
python -c "import sys; import pprint; pprint.pprint(sys.modules); pprint.pprint(dir(sys.modules['__main__']))"
Code: Alles auswählen
Und in Deinem Post schreibst Du jetzt sogar, dass was ich tue, nämlich compile und exec auch importiert wäre. Ja wozu streiten wir uns dann überhaupt? Dann kann ja jeder zufrieden sein, denn ich habe es ja dann doch importiert, oder?
Code: Alles auswählen
def no_script():
print("I'm a script")
Code: Alles auswählen
Wenn man Funktionalität braucht, die in einer anderen .py-Datei steht, dann wird diese importiert. Daher muss sie auch so geschrieben sein, dass sie sinnvoll importierbar ist.
Richtig! Solche Sachen importiert man nicht und gut ist. Denn wenn es unsinnig ist, ein Modul zu importieren, dann nutzt man es natürlich auch nicht über andere finstere schwarze Magie, wie Du sie betreibst. Man nutzt es einfach gar nicht, überhaupt nicht. Deutlicher kann ich es nicht ausdrücken...Alfons Mittelmeyer hat geschrieben:Das schließt aber auch ein, dass man nicht importiert, was äußerst unsinnig ist, dass man es importiert.
Äh, was? Entweder bist Du auf Drogen oder Du hast mal wieder Begriffe verquer umdefiniert ohne jemandem was davon zu verraten.Also beim Lesen von Zeilen aus einem ASCII File sollten da die Zeilen als Module implementiert werden.
Code: Alles auswählen
import imp
def file_exec(filename,globals=None,locals=None,module_counter = [0]):
counter = module_counter[0]
module_counter[0] += 1
return imp.load_source('module_'+str(counter),filename)
file_exec("print_test.py")
file_exec("print_test.py")
file_exec("print_test.py")