我有一个涉及Python编程的项目有这个问题.我创建了这个类,弹出一个屏幕,允许我打开一个xls文件.在这个类中,该文件的目录然后被放入这个变量'filename'.:>
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
Run Code Online (Sandbox Code Playgroud)
在这个类中,变量filename确实在其中有正确的目录.现在我想在这里使用它,外出一个类或一个def:
wb = xlrd.open_workbook(filename)
Run Code Online (Sandbox Code Playgroud)
这不起作用,给我错误'文件名未定义'
我已经读过有关Python的'全局'命令,它似乎有解决方案,但我似乎无法实现这一点.
任何人?
我不会详细介绍您的代码,但只会用它来解释基本概念.
变量filenamein showDialog定义为局部变量 - 因此,您无法在此函数外部访问它.
如果要将变量定义为OpenFile类的实例变量,则需要使用self.filename.
我假设你有一个类的实例OpenFile,例如:
openfile = OpenFile()
Run Code Online (Sandbox Code Playgroud)
现在,您可以通过调用以下方法从此实例访问该变量:
openfile.filename
Run Code Online (Sandbox Code Playgroud)