tkinter GUI中出现意外的数据泄漏

2024-09-28 22:44:09 发布

您现在位置:Python中文网/ 问答频道 /正文

最近,我开始用Python制作一个名为Robble Clicker的游戏。我的项目使用了tkinter,最近运行得很好

基本上,下面显示的代码将在GUI上的按钮小部件调用后运行:

def auto1():
    global coins
    global item1_auto
    if coins >= 250:
        coins -= 250
        runauto1()
        item1_auto = 1
        click1["state"] = DISABLED
        click1.update()
        click1_auto.config(state=DISABLED)

def runauto1():
    global coins
    global item1_sleep
    global item1
    global item1_cost
    click1.after(int(item1_sleep * 1000), runauto1)
    click1.after(int(item1_sleep * 1000), do1())

但是,在实现此代码后,单击按钮后会立即发生内存泄漏,并且在其解决后大约10秒,将导致无法解决的内存泄漏

我的全部代码可以在这里找到:https://pastebin.com/pHwZFwZV


Tags: 内存代码autodefsleep按钮globalint
1条回答
网友
1楼 · 发布于 2024-09-28 22:44:09

至少部分问题在于:click1.after(int(item1_sleep * 1000), do1())您正在立即调用do1(),而不是将其放入队列中。这就像你做了result=do1(); click1.after(int(item1_sleep * 1000), None)一样。如果这导致调用runauto1,您将很快创建一个递归错误

相关问题 更多 >