Skip to main content
 首页 » 编程设计

python之如何在此类外部使用类内部声明的变量

2025年05月04日11lovecherry

我在一个涉及 Python 编程的项目中遇到了这个问题。 我创建了一个弹出屏幕的类,因此允许我打开一个 xls 文件。 在这个类中,这个文件的目录然后被放入这个变量“文件名”中。 :>

class OpenFile(QtGui.QMainWindow): 
  def __init__(self): 
    super(OpenFile, self).__init__() 
    self.initUI() 
 
  def initUI(self): 
    openFile = QtGui.QPushButton('Open Orderpakket', self) 
    openFile.setGeometry(0, 00, 350, 300) 
    openFile.setStatusTip('Open new File') 
    self.connect(openFile, QtCore.SIGNAL('clicked()'), self.showDialog) 
    self.setWindowTitle('Open Orderpakket') 
 
  def showDialog(self): 
    filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file',r'J:\Integratie Project\Files', "Excel Files (*.xls*.xlsx)") 
 
    print filename 

在这个类中,变量 filename 里面确实有正确的目录。 现在我想在这里使用它,在类或 def 之外:

wb = xlrd.open_workbook(filename) 

那行不通,给我一个“文件名未定义”的错误

我读过 Python 的“全局”命令,它似乎有解决方案,但我似乎无法让它工作。

有人吗?

请您参考如下方法:

我不会详细介绍您的代码,而只会用它来解释基本概念。

showDialog 中的变量 filename 被定义为局部变量 - 因此,您不能在此函数之外访问它。

如果要将变量定义为类 OpenFile 的实例变量,则需要使用 self.filename。

我假设你在某处有一个 OpenFile 类的实例,例如:

openfile = OpenFile() 

现在您可以通过调用从这个实例访问变量:

openfile.filename