如何将函数的结果保存为全局变量,以便稍后在另一个函数中使用,或者作为运行函数的结果更新变量值?
我正在尝试在一个小的tkinter gui python 3应用程序上记录用户输入的文件路径。
def sw_click(): # User clicks button
sw_path1 tkinter.filedialog.askopenfilename(initialdir='C:/')
softwareP_label.config(text=sw_path1)
print(sw_path1) # Just for logging
return sw_path1
试图在函数外部使用全局变量时,可变变量的值始终为none或"“。
sw_path1 = None # Or using "" has same results
def software_click():
global sw_path11
tkinter.filedialog.askopenfilename(initialdir='C:/')
return sw_path1
使用一个简单的打印命令检查变量值,在执行时打印变量,值为None或"“。在包含print的情况下运行该函数,将打印出我试图获取的变量的正确路径。运行函数后打印变量,值返回为None或"“
None's返回错误,"NameError:名称'sw_path1‘未定义“
任何帮助都是非常感谢的。谢谢
发布于 2018-08-04 06:27:31
有一个拼写错误:该变量仅在functions全局语句中称为sw_path11
。
您必须将从文件返回对话框赋给变量sw_path1
。
import tkinter.filedialog
sw_path1 = None # Or using "" has same results
def software_click():
global sw_path1
sw_path1 = tkinter.filedialog.askopenfilename(initialdir='C:/')
return sw_path1
software_click()
print(sw_path1)
当你将返回值赋值给一个全局变量时,你并不真的需要返回它,尽管那样会更有pythonic风格。
import tkinter.filedialog
sw_path1 = None # Or using "" has same results
def software_click():
return tkinter.filedialog.askopenfilename(initialdir='C:/')
sw_path1 = software_click()
print(sw_path1)
https://stackoverflow.com/questions/51680636
复制相似问题