Das macht man so:
Code: Alles auswählen
def main():
from tkinter import *
class ....
main()
Code: Alles auswählen
def main():
from tkinter import *
class ....
main()
Da gibt es doch zwei nennenswerte Unterschiedie. Denn was im Mainscript steht oder was man importiert sind globale Definitionen und die soll man vermeiden. Und der andere Unterschied ist eine mehr als nur temporäre Existenz. Erwartet wird, dass lokale Variablen oder Objekte nach einem Funktionsaufruf im Garbage Collector entsorgt werden sofern man sie nicht durch Referenzierung an länger bestehen bleibende Objekte knüpft.BlackJack hat geschrieben:@BlackJack Ansonsten kann man natürlich auch beliebig viele Module haben die man importiert, statt den Quelltext `compile()` und `exec` zu verarbeiten. Da ist kein relevanter Unterschied zum Importieren. Höchstens irgendwelche eingebildeten Speicherprobleme. Was aber mit dem Problem in diesem Thema hier wieder so rein gar nichts zu tun hat.
Code: Alles auswählen
def function_a():
....
def function_b():
....
function_a()
....
Code: Alles auswählen
Toplevel('HelpSaveLoad',link='guidesigner/HelpSaveLoadContent.py')
Code: Alles auswählen
Toplevel('HelpSaveLoad',link='file://guidesigner/HelpSaveLoadContent.py'
Das hatten wir doch schon mal!!! http://www.python-forum.de/viewtopic.ph ... o&start=15 Ich kenne ein Forum, da gibt es einen animierten Smiley, der den Kopf gegen die Wand schlägt, den bräuchte ich jetzt.Alfons Mittelmeyer hat geschrieben:@Hyperion Anscheinend hast Du nicht verstanden, dass es hier nicht um Module geht, sondern um Scripte. Also nicht um Libraryfunktionen die man aufrufen kann oder soll.
Und mit Speicherproblemen hat das zwar auch zu tun aber auch mit völlig unsinnigen Forderungen und mit erheblichen Sicherheitsrisiken. Mal schon darüber nachgedacht, welche Sicherheitsrisiken import birgt?@Alfons Mittelmeyer: Das was Du da schreibst hat nichts mit dem ja nun bereits gelösten Problem zu tun. Und Probleme die man durch `compile()` und `exec` bekommt behebt man ganz einfach in dem man `compile()` und `exec` nicht benutzt.
Code: Alles auswählen
def load_script(filename):
exec(compile(open(filename, "r").read(), filename, 'exec'))
Ja, das bist Du, denn *Du* hast hier *wieder* mit dem `compile()` und `exec`-Unsinn angefangen und hörst nach mehreren Hinweisen nicht auf damit. In einem Thema was geklärt war und damit überhaupt nichts zu tun hat. Und *Du* hörst damit nicht auf, obwohl mehrere Benutzer das Thema weder hier noch sonst irgendwo *schon wieder* lesen wollen. Ist ja auch keine Diskussion mehr und es bringt auch keinen zusätzlichen Erkenntnissgewinn, sondern Du wiederholst den gleichen Unsinn wieder und wieder, bei dem sich erfahrene Python-Programmierer einfach nur an den Kopf fassen und sich schon wieder mal fragen ob Du so engstirnig und begriffsstutzig bist oder ein Troll, also Dummheit oder absichtliche Provokation.Alfons Mittelmeyer hat geschrieben:bin ich es denn, der damit ständig anfängt und der das dann weiter austreten will?