Python 正在寻找一种方法来阻止这个基本程序中的内存泄漏
我是Python新手。此程序在Tk()窗口内创建标签。“hi”一词会无限期地写入标签中。如何删除旧的hi,同时无限期地编写新的hi?这就是我阻止内存泄漏的方法吗?代码如下:Python 正在寻找一种方法来阻止这个基本程序中的内存泄漏,python,python-3.x,memory-leaks,tkinter,Python,Python 3.x,Memory Leaks,Tkinter,我是Python新手。此程序在Tk()窗口内创建标签。“hi”一词会无限期地写入标签中。如何删除旧的hi,同时无限期地编写新的hi?这就是我阻止内存泄漏的方法吗?代码如下: from tkinter import * def box(a): z=Label(root,text='%s'%(a)) z.place(width=50,height=20) def start(root): a="hi" box(a) root.after(100, star
from tkinter import *
def box(a):
z=Label(root,text='%s'%(a))
z.place(width=50,height=20)
def start(root):
a="hi"
box(a)
root.after(100, start, root)
root = Tk()
start(root)
root.mainloop()
不如每次都替换文本而不是创建
标签
对象
from tkinter import *
def box(a):
z['text'] = a
def start(root):
box('hi')
root.after(100, start, root)
root = Tk()
z = Label(root, text='')
z.place(width=50, height=20)
start(root)
root.mainloop()
这无疑修复了内存泄漏,但现在pythonw的CPU使用率高达50%!!在我的代码中,它将从大约2%开始,并随着内存的增加而缓慢增加leaked@JohnW4,将
1
替换为100
。我将值从100改为1来测试它。现在我更新了答案,将1
更改为100
。
from tkinter import *
def start(root, z):
a = 'hi'
z['text'] = a
root.after(100, start, root, z)
root = Tk()
z = Label(root, text='')
z.place(width=50, height=20)
start(root, z)
root.mainloop()