python - 如果在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()
解决方案
你这样做是不对的。您正在检查 Box 函数中列表的长度,该函数将在程序启动时启动。但是要检查,你必须把 if else 放在 Turn 函数中,当按钮被点击时,它会执行 turn 命令检查条件是否为真
def Turn():
list2=['charlie']
if len(list2) == 1:
print('yes')
else:
print('no')
推荐阅读
- c++ - Boost::iostreams 链接器错误,找不到 zlib
- c++ - 64 位 DLL 中鼠标的 SetWindowsHookEx 影响 32 位应用程序窗口移动
- django - Django TypeError:render() 得到了一个意外的关键字参数“renderer”
- ionic-framework - ngif 无法读取 null 的属性“肩膀”
- python - 在 Python 中进入 for 循环之前的函数分配
- node.js - 在贝宝中进行多供应商付款的方法和方法
- html - 动态内容的水平对齐(特殊情况)
- jenkins - 安全删除/清除日志文件
- jwt - 如何更改 FeathersJS 中的 JWT 过期时间?
- php - PHP 问题。输出有时会在特定回声后停止