[英]Global variable not recognized in Python
我尝试过的
def mnuRead(self, event):
global fn
dialog = wx.FileDialog(None, "Choose a file", os.getcwd(), "", "*.*", wx.OPEN)
if dialog.ShowModal() == wx.ID_OK:
countrylist = []
fn = dialog.GetPath()
fh = open(fn, "r")
csv_fh = csv.reader(fh)
for row in csv_fh:
countrylist.append(row)
fh.close()
for rows in countrylist:
self.myListCtrl.Append(rows)
def btnHDI(self, event):
myfile = open(fn, "rb")
在我的第一个功能中,我提示用户打开他们选择的文件。 我有一个声明,然后将全局变量分配给“ fn”。
当我在btnHDI函数中调用“ fn”时,Python表示fn是“未定义的”。
我究竟做错了什么? 这不是对全局变量的正确使用吗? 在所有其他功能中,如何使用用户在“ mnuRead”功能中选择的文件路径?
如果您坚持将fn
为全局fn
,为什么不在模块中定义fn
:
# Somewhere in the same .py module
fn = None
def mnuRead(self, event):
# Modify fn
def btnHDI(self, event):
# Read fn
您需要同时在函数中放入fn
fn = 2
def func():
global fn
您可以在函数中读取全局变量,但不能更改它; 除非您尝试在函数中更改变量,否则python会自动将其设置为局部变量,除非您在变量前面使用global。
更好地:
fn = func():
return value to fn
除非你绝对需要
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.