Ich habe Probleme beim Übergeben von Variablen zwischen zwei Skripten in Python, ohne das importierte Skript zu beenden. Ich möchte für die Statusleiste in meinem tkinter GUI aktualisieren, um zu reflektieren, auf welcher Zahl der Zähler in script2 ist. Ich habe den Code unten enthalten:Eine Variable zwischen zwei Skripten übergeben?
from tkinter import *
import script2
root = Tk()
canvas = Canvas(root, width=300, height=300)
canvas.pack()
def runScript():
var = script2.information()
button1 = Button(root, text="Click Me!", command=runScript)
button1.pack()
var = StringVar()
var.set('Waiting for Input...')
status = Label(root, textvariable=var, bd=1, relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)
root.mainloop()
Script2 wäre:
#script2
import time
def information():
variable = 0
while variable < 500:
yield variable
variable += 1
print(variable)
time.sleep(1)
Ich verstehe, dass dies mit Generatoren zu tun hat, aber mein Verständnis war, dass Yield die Schleife unterbrechen würde, die Daten senden zu dem ursprünglichen Programm, lassen Sie es verarbeiten und dann die Schleife pausieren. Gibt es einen besseren Weg, diesen Prozess zu verstehen?
Danke für Ihre Zeit!
Vielen Dank für die Antwort! Wenn ich Ihre vorgeschlagenen Änderungen mache, wird meine Statusleiste jedoch zu "" und die Schleife in script2 wird nicht fortgesetzt. –
cloudfr0g
Außerdem habe ich nur Zeit in das andere Skript gesteckt, um etwas Schwieriges und Zeitaufwendiges zu simulieren. Ich schätze das Nugget von Informationen darüber, obwohl! – cloudfr0g
Es funktionierte gut für mich .. hast du meinen Code geändert: 'var.set (information())'? Sie müssen genau das tun, was ich getan habe. – abccd