python - 我怎样才能摆脱这个小的逻辑错误?
问题描述
我正在尝试创建一个小型 GUI 应用程序,用户和计算机都在依次单击按钮小部件。
首先,用户单击按钮,按钮文本发生变化,然后计算机单击按钮,机器的按钮上出现不同的文本
这是代码。
from tkinter import *
globals()['status'] = True
class test11(Tk):
def __init__(self):
super().__init__()
self.geometry('200x200')
self.btn_1 = Button(self,text="CLICK ME",command=lambda :self.test_function(1,2))
self.btn_1.grid()
if not (globals()['status']):
self.machine()
def test_function(self,aa,bb):
self.btn_1['text'] = f'Dont CLICK ME {aa} {bb} HUMAN'
globals()['status'] = False
def machine(self):
self.btn_1['text'] = f'Computer just clicked me'
globals()['status'] = True
if __name__ == '__main__':
a = test11()
a.mainloop()
但问题是即使用户已经按下了按钮,机器也永远不会轮到。
当用户按下按钮时,全局变量的值会发生变化,这应该让机器函数调用不是吗?
解决方案
推荐阅读
- awk - 与 ; 之间的区别 并且没有;在 awk 命令的表达式中
- c - 如何安装 libsodium 以在 C 项目中使用
- nginx - 在 Nginx 中提供 Base64 GIF
- python - 如何以特定顺序打印列表字典?
- prolog - 如果只有一个合乎逻辑的答案,如何询问序言
- java - 如何退出递归函数调用
- python - 在 Django 中自动返回“无”的 ID 字段
- python - LSTM 混淆中的时间步长
- python - 在 pandas DataFrame 中计算平均值时,如何过滤掉使用 <5 个值来计算平均值的行?
- javascript - 即使从 api 推送值,我的数组也返回空