我試圖更新classA中的變量並使用classB中的更新信息。因此我有兩個問題:1)如何更新實例方法中的類變量? 2)如何使用父類的繼承變量?類變量更新/繼承實例方法
本方案的主要思想是,用戶輸入的名稱,該名稱變種,它的值csv_name_sub
將保存和更新,並在類B.(即用作文件名)
classA(object):
def __init__(self, master, csv_name_sub):
self.entrySub = Entry(self.master,bg="grey") #user enters sth
button1 = Button(self.master,text='NEXT', command=self.gotoPage1)
def writeToFile(self):
self.csv_name_sub = str(self.entrySub.get()) #save value to var
def gotoPage1(self):
self.writeToFile()
root2=Toplevel(self.master)
self.instPage1=classB(root2)
classB(classA):
def __init__(self, master, csv_name_sub):
classA.__init__(self, master, csv_name_sub)
print(self.csv_name_sub)
self.resultFile = open(
"/Users/" + self.csv_name_sub,'w')
self.resultFileWrite = csv.writer(self.resultFile)
def main():
root = Tk()
myApp = classA(root, csv_name_sub)
root.mainloop()
使用但是,錯誤的是:
myApp = classA(root, csv_name_sub)
NameError: name 'csv_name_sub' is not defined
我理解csv_name_sub
是在父類中創建的,它的價值是不是在子類繼承。但是我怎樣才能訪問子類中的變量值?因爲csv_name_sub
的值由用戶在父類中輸入的內容決定,所以我無法在自己的子類中定義它。
感謝您的幫助!
錯誤是因爲'csv_name_sub'沒有在主要定義的位置。像'root = Tk()'你應該定義'csv_name_sub'。 – Pavan
我不太明白這一點_我認爲這是由於var的值csv_name_sub在用戶輸入後沒有更新,並且正確地繼承到classB您如何期待創建子類並將值從父類繼承?你沒有創建一個'ClassB'對象。 – Pavan
@Pavan感謝您的評論!請注意,我在這裏混淆了措詞。我的主要想法是我想使用classB中classA中創建的var'csv_name_sub'的值。我知道它的值不會在classB中繼承,因爲它不是在classB中創建的。那麼我怎麼能找到一種方法來在子類中使用'csv_name_sub'的值(在父類中創建)呢? – Kay