首页 > 解决方案 > 如果在tkinter中单击按钮之前的语句,为什么python会执行

问题描述

#Mbox
from tkinter import *

list2= ['charlie','sam','lolo']

def Turn():
   list2=['charlie']     


def Box():
    global list2
    popup = Tk()
    label = Label(popup,text='jack').pack()
    button = Button(popup,text='lew',command=lambda: Turn()).pack()

    if len(list2) == 1:
        print('yes')
    else:
        print('no')

    popup.mainloop()

Box()

当 Ran 输出为 no 时,这是为什么呢?除了创建一个额外的功能之外,还有什么方法可以绕过它。该代码是我要解决的问题的一个示例,而不是实际代码,因此请尽量不要更改代码,以便 if 语句位于函数 Turn()

标签: pythontkinter

解决方案


你这样做是不对的。您正在检查 Box 函数中列表的长度,该函数将在程序启动时启动。但是要检查,你必须把 if else 放在 Turn 函数中,当按钮被点击时,它会执行 turn 命令检查条件是否为真

def Turn():
    list2=['charlie']     

    if len(list2) == 1:
       print('yes')
    else:
       print('no')

推荐阅读