если предположить, что вы используете tkinter, вам не нужно глобальное назначение.
Вам нужен объектно-ориентированный подход, и правильный инструмент, такой как StringVar () или IntVar (), зависит от природы вашей переменной.
см. Ниже, def callback (self), ваша функция1
import tkinter as tk
class App(tk.Frame):
def __init__(self,):
super().__init__()
self.master.title("Hello World")
self.value = tk.StringVar()
self.value1 = tk.StringVar()
self.init_ui()
def init_ui(self):
self.pack(fill=tk.BOTH, expand=1,)
f = tk.Frame()
tk.Label(f, text = "Value").pack()
tk.Entry(f, bg='white', textvariable=self.value).pack()
tk.Label(f, text = "Value1").pack()
tk.Entry(f, bg='white', textvariable=self.value1).pack()
w = tk.Frame()
tk.Button(w, text="Print", command=self.callback).pack()
tk.Button(w, text="Reset", command=self.on_reset).pack()
tk.Button(w, text="Close", command=self.on_close).pack()
f.pack(side=tk.LEFT, fill=tk.BOTH, expand=0)
w.pack(side=tk.RIGHT, fill=tk.BOTH, expand=0)
def callback(self):
if self.value1.get():
if self.value.get():
print(self.value1.get() + " | " + self.value.get())
else:
print("Foo")
def on_reset(self):
self.value1.set('')
self.value.set('')
def on_close(self):
self.master.destroy()
if __name__ == '__main__':
app = App()
app.mainloop()