Python tkinter按钮运行命令并销毁弹出窗口

Python tkinter按钮运行命令并销毁弹出窗口,python,tkinter,Python,Tkinter,我使用tkinter在Python3中工作,希望在弹出窗口中有一个按钮,运行命令并销毁弹出窗口。下面的代码在前端工作,但在命令行中出现错误,这是一个可以解决的问题吗 我得到的错误是: 回溯(最近一次呼叫最后一次): 文件“C:Python34\lib\tkinter\uuuu intit\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 返回self.func(*args) 文件“test.py”

我使用tkinter在Python3中工作,希望在弹出窗口中有一个按钮,运行命令并销毁弹出窗口。下面的代码在前端工作,但在命令行中出现错误,这是一个可以解决的问题吗

我得到的错误是:

回溯(最近一次呼叫最后一次):
文件“C:Python34\lib\tkinter\uuuu intit\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 返回self.func(*args)
文件“test.py”,第14行,在
command=lambda:display_something()*popup.destroy())
TypeError:&:'NoneType'和'NoneType'的操作数类型不受支持

&
是“and”运算符,但用于
,不用于
布尔值

您需要布尔运算符

但是在您的代码中,
应该工作得更好,因为第一个函数返回的
None
被视为
False
,而
False和
anything总是
False
,所以不需要执行
anything
。但是
False或anything
可能根据
anything
给出
False
True
,因此它必须执行
anything
才能得到最终结果。)


你能将错误信息添加到问题中吗?非常好,谢谢你的解释!
from tkinter import *

class MainView(Frame):
    def __init__(self,master):
        Frame.__init__(self,master)
        self.grid()
        new_popup = Button(self,text = 'Make A Popup!',
            command = lambda: popup()).grid(row=0,column=0)


def popup():
    popup = Toplevel()
    button = Button(popup, text = 'Display something on the command line',
        command = lambda: display_something() & popup.destroy())
    button.pack()

def display_something():
    print('popup ran the command')

def main():
    root = Tk()
    root.title('Eric\'s Archiver')
    app = MainView(root)
    root.mainloop()


if __name__ == '__main__':
    main()
lambda: display_something() or popup.destroy()