【发布时间】:2018-08-06 03:43:07
【问题描述】:
这可能太新了,无法准确找到我正在寻找的东西。我有一个全局预设为 None 的变量,以从 func1 更新 var1 的值。如果第一个函数没有运行以从 None 更新 Var1,是否有一种方法可以对 None 变量执行 if 语句,如果确认它仍然设置为 None,则执行一些操作。我试过 ==、!= "1" 和许多其他熟悉的人,但没有找到解决办法。这是 tkinter 的示例:
import tkinter as tkinter
from tkinter import Frame
import tkinter.filedialog as filedialog
root = tkinter.Tk()
class Stupid_app(Frame):
def __init__(self, master=None):
Frame.__init__(self, master, bd=2)
Var1 = None
def func1():
global Var1
Var1 = tkinter.filedialog.askopenfilename() # Open file to get path
label.config(text=Var1) # Updates the label
print(Var1)
return Var1
def func2():
global Var1
if Var1 is not None:
print("var is not none")
else:
quit()
Button1 = tkinter.Button(root, text="Get Path", command=func1)
Button1.pack()
label = tkinter.Label(root, text="^^Select File ^^")
label.pack()
Button2 = tkinter.Button(root, text="Run a Fuction", command=func2)
Button2.pack()
app = Stupid_app(root)
root.update()
root.mainloop()
而是设置全局变量,将变量预设为字符串,似乎总是返回 NameError: name 'var1' is not defined 在第 22 行包含 if 语句 if var1 is "" :。我还尝试使用"a" 或类似方法设置函数内部和外部的变量。
我已经在几个位置阅读过这是不可能的,也不可能以这种方式使用 None,但我没有看到任何替代方案。任何帮助表示赞赏,谢谢。
【问题讨论】:
标签: python python-3.x variables tkinter nonetype