#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()
中。答案 0 :(得分:0)
您做错了。您正在检查Box功能中列表的长度,该功能将在程序启动时启动。但是要进行检查,必须在“转向”功能中放置其他内容,然后单击按钮时,它将执行turn命令,以检查条件是否为真
def Turn():
list2=['charlie']
if len(list2) == 1:
print('yes')
else:
print('no')
答案 1 :(得分:0)
您可以在自己的函数中运行if语句,然后将其添加到lambda调用中。
看看下面的例子,如果您有任何疑问,请告诉我。
from tkinter import *
list2 = ['charlie', 'sam', 'lolo']
def Turn():
global list2
list2 = ['charlie']
def run_if_statment():
global list2
if len(list2) == 1:
print('yes')
else:
print('no')
def Box():
global list2
popup = Tk()
Label(popup, text='jack').pack()
Button(popup, text='lew', command=lambda:(Turn(), run_if_statment())).pack()
popup.mainloop()
Box()