0

我在使用 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 
4

1 回答 1

2

我猜你在没有定义 opendialog 的情况下陷入了第二个“if”语句的“else”条件。您需要确保它在每种情况下都以某种方式初始化,而不仅仅是在三个中的两个中。否则最后一个“if”语句将失败。所以请确保添加

opendialog = wx.FileDialog(self, "Choose a file", "", "", "*.csv", wx.MULTIPLE)

到第二个“if”语句的末尾,它适用于所有情况。

于 2012-05-14T13:19:11.993 回答