[英]How to use a variable declared inside a class, outside of this class?
我在一個涉及 Python 編程的項目中遇到了這個問題。 我制作了這個 class ,它會彈出一個屏幕,這樣我就可以打開一個 xls 文件。 在這個 class 里面,這個文件的目錄然后被放入這個變量“文件名”。 :>
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
在這個 class 里面,變量文件名里面確實有正確的目錄。 現在我想在這里使用它,在 class 或 def 之外:
wb = xlrd.open_workbook(filename)
這不起作用,給我“未定義文件名”的錯誤
我已經閱讀了 Python 的“全局”命令,它似乎有解決方案,但我似乎無法讓它工作。
任何人?
我不會詳細介紹您的代碼,而只會用它來解釋基本概念。
showDialog
中的變量filename
被定義為局部變量 - 因此,您無法在此 function 之外訪問它。
如果要將變量定義為 class OpenFile 的實例變量,則需要使用self.filename
。
我假設您在某處有一個 class OpenFile
的實例,例如:
openfile = OpenFile()
現在您可以通過調用從該實例訪問變量:
openfile.filename
將filename
作為屬性添加到 class 的 object 中,即self
:
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
class 的 object。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.