我在使用if和else语句时遇到一些麻烦,我正在使用多个wx.FileDialog语句来更改文件类型我允许用户根据选择的单选按钮进行选择。所以问题是我一直得到一个UnboundLocalError,我的本地变量分配给在赋值之前引用的FileDialog语句。这是我的代码:
def OnOpen(self, e):
if self.radioButton1.GetValue():
opendialog = wx.FileDialog(self, "Choose a file", "", "", "*.txt", wx.MULTIPLE)
if self.radioButton2.GetValue():
opendialog = wx.FileDialog(self, "Choose a file", "", "", "*.csv", wx.MULTIPLE)
else:
selectdialog = wx.MessageDialog(self,"Select process", "Warn", wx.OK)
selectdialog.ShowModal()
selectdialog.Destroy()
if opendialog.ShowModal() == wx.ID_OK:
#More code to file path information
答案 0 :(得分:2)
我猜你在没有定义opendialog的情况下陷入第二个“if”语句的“else”状态。你需要确保它在每种情况下以某种方式初始化,而不仅仅是三种中的两种。否则最后一个“if”语句将失败。所以一定要添加
opendialog = wx.FileDialog(self, "Choose a file", "", "", "*.csv", wx.MULTIPLE)
到第二个“if”语句的结尾,它将适用于所有情况。