非类型对象没有属性';摧毁';使用Tkinter时Python中的错误

非类型对象没有属性';摧毁';使用Tkinter时Python中的错误,python,python-3.x,Python,Python 3.x,在使用Tkinter创建应用程序时,我遇到了destroy函数的错误。 这是我的密码: 从tkinter导入* root=Tk() def show(): 全局myl myl=Label(root,text='Done!!!')。pack() def ref(): myl.destroy() b1=按钮(root,text='Submit',font=('ariel',16),command=show).pack() b2=按钮(root,text='Refresh',font=('cambri

在使用Tkinter创建应用程序时,我遇到了destroy函数的错误。 这是我的密码:

从tkinter导入*
root=Tk()
def show():
全局myl
myl=Label(root,text='Done!!!')。pack()
def ref():
myl.destroy()
b1=按钮(root,text='Submit',font=('ariel',16),command=show).pack()
b2=按钮(root,text='Refresh',font=('cambria',16),command=ref).pack()
root.mainloop()
我得到的错误是:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__       
    return self.func(*args)
  File "c:\Users\dhrit\OneDrive\Desktop\Dhriti\python\test101.py", line 10, in ref
    myl.destroy()
AttributeError: 'NoneType' object has no attribute 'destroy'
如何修复此错误?

show()中,您必须说:

def show():
    global myl
    myl = Label(root,text='Done!!!')
    myl.pack()
所有的
标签
和其他小部件都应该“放在屏幕上”,放在单独的一行上

为什么??因为
myl=Label(..).pack()返回
None
。当您调用
destroy()
方法或
myl
上的任何其他方法时,您所说的
myl=Label(..).pack()
不存在。因此,您必须
pack()
将其放在单独的一行中

希望你澄清了你的疑问,如果有任何错误请告诉我


干杯这回答了你的问题吗?现在它工作了……谢谢!!!。。。。