意外的全局变量行为
我看到的东西让我认为我错过了一些东西
全球VAR的行为如何.我已经定义了一个全局字符串,就在
启动我的.py文件.
OUTXMLFILE =" ABC"
我定义一堂课,并在下面做很多事情.然后我有
另一个类,其中有一个" def"的方法:
Def OnoutFileButton(Self,EVT):
(fpath,fname)= os.path.split(fullname)
打印"选定的输出文件:" + fname
OUTXMLFILE = fname
打印"输出文件:" + OUTXMLFILE
在项目中的其他地方随机打印语句,显示Outxmlfile
然而,在此def中打印为" abc",它与fname一样.
(例如" myfile.xml")如果OUTXMLFILE的打印行是在
分配给fname,它会引发错误:
UnbounlocalError:之前引用的本地变量" OUTXMLFILE"
任务
如果我删除了" OUTXMLFILE = fname"的行
然后打印语句给我一个值" abc"的值
我想念什么?当我分配一个值以更新我的全局变量时,
它成为局部变量.如果我不尝试更新它,它将停留
全球的.我认为这就像一个常数,尽管我有几个
全球列表,我似乎可以将他们附加在一起.
我想我可以将变量将
方式,但想了解我的方式的错误...
罗斯.