【发布时间】:2021-12-19 23:28:58
【问题描述】:
在销毁第一个子帧并初始化第二个帧后,父对象仍保留一些关于第一个子帧存在的记忆,如.!frame2 中的2 所示。
我的问题是,
-
如果子对象已被销毁,该对象如何跟踪其过去的子对象?
-
是否有最佳实践或其他一些程序来扭转/保持这一点?
虽然下面的示例代码很简单,但我的实际应用程序涉及销毁和创建数百个子帧,我注意到当打包许多帧时它会变慢。
代码
import tkinter
x = tk.Tk()
tk.Frame(x)
x.winfo_children()[0].destroy()
tk.Frame(x)
print(x.winfo_children())
输出
[<tkinter.Frame object .!frame2>]
【问题讨论】:
-
而且我注意到当很多帧被打包时它会变慢。如果你将数百个帧打包到你的窗口中,那么我猜你误解了一些东西,只要你没有墙那么大的显示器,好像没这个必要。