如何解决如何使用在类之外的类中声明的变量?
| 我在一个涉及使用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
在此类内部,变量文件名确实具有正确的目录。
现在,我想在这里使用它,在类或def之外:
wb = xlrd.open_workbook(filename)
那行不通,给我错误“文件名未定义\”
我已经读过Python的\'global \'命令,它似乎有解决方案,但我似乎无法正常工作。
任何人?
解决方法
我不会详细介绍您的代码,而只会用它来解释基本概念。
showDialog
中的变量filename
被定义为局部变量-因此,您不能在此函数之外访问它。
如果要将变量定义为类OpenFile的实例变量,则需要使用self.filename
。
我假设您在某处有一个类OpenFile
的实例,例如:
openfile = OpenFile()
现在,您可以通过调用以下实例从该实例访问变量:
openfile.filename
,将filename
作为属性添加到类的对象,即,9ѭ:
self.filename = QtGui.QFileDialog.getOpenFileName(self,\'Open file\',r\'J:\\Integratie Project\\Files\',\"Excel Files (*.xls *.xlsx)\")
这样,您可以像这样访问它:
wb = xlrd.open_workbook(openfile.filename)
其中openfile
是OpenFile
类的对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。