我試圖在 Tkinter 中創建我自己的小部件,所以我從 Frame 類繼承。但出于某種原因,我的Food班級回傳了NoneType班級實體。為什么會發生,我怎樣才能讓它回傳一個Food類的實體?
import tkinter as tk
class Food(tk.Frame):
def __init__(self,parent,index,name="",price=0):
tk.Frame.__init__(self, parent)
self.name = tk.Entry(self)
self.price = tk.Entry(self)
self.name.insert(0, name)
self.price.insert(0, str(price))
self.name.pack(ipadx=70,ipady=5,side='left',expand=True, fill='x')
self.price.pack(ipadx=10,ipady=5,side='left')
self.index=index
def getIndex(self):
return self.index
if __name__ == "__main__":
root = tk.Tk()
print(type(Food(root,1).pack(fill='x'))) # <class 'NoneType'>
root.mainloop()
uj5u.com熱心網友回復:
這是因為您已經將 .pack() 函式放在 type() 函式中,這使得 type() 回傳函式'Food(root,1).pack(fill='x')' 的回傳型別(這是 None),而不是您想要的類物件'Food(root,1)'。
uj5u.com熱心網友回復:
請注意,Food(root,1).pack(fill='x')將得到的結果.pack(...)始終為None。
您需要將該行拆分為兩行:
...
frame = Food(root, 1)
frame.pack(fill='x')
print(type(frame))
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327492.html
