我對Python仍然很陌生,所以如果我的問題微不足道,或者甚至是愚蠢的,我都很抱歉。我正在嘗試構建一個對Button的回調(不在代碼中)作出反應的小模塊。回調在main()函數中模擬。現在我的問題是,我無法弄清楚如何擺脫全球名稱錯誤。它說drink0_ingred沒有被定義爲全局名稱。我需要這個名爲self.l0的標籤作爲文本。這是我到目前爲止有:全局名稱錯誤
import tkinter
from tkinter import ttk
def main():
root = tkinter.Tk()
callback = callbackkb0()
drink0 = Drink0(root)
root.mainloop()
def callbackkb0():
with open(file="drink0_ingred.txt") as ingred0:
drink0_ingred = ingred0.read()
print(drink0_ingred)
return drink0_ingred
class Drink0(ttk.Frame):
def __init__(self, root):
ttk.Frame.__init__(self, root)
self.grid()
self.widgets_create()
def widgets_create(self):
self.l0 = ttk.Label(self, text=drink0_ingred)
self.l0.grid()
main()
如何定義drink0_ingred作爲全局名稱並使其accessable其他功能? 感謝您的幫助!
當你得到一個異常,請張貼,包括堆棧跟蹤。 – 2013-04-23 13:45:40
drink0_ingred沒有在Drink0或widgets_create中定義。這就是你看到錯誤的原因。我想你會想把一個默認字符串,而不是在啓動時未定義的變量。 – sashkello 2013-04-23 13:47:33
好的,我會在下次做。 – user2304540 2013-04-23 14:23:25