python - 删除 tkinter 类中的实例化对象?
问题描述
我正在尝试制作一个 GUI,我需要能够删除 Comic 类中的实例化对象(在漫画列表中)。我还需要能够从名称列表中删除它。(漫画名)
这是我查找要删除的对象的功能
def delete_comic():
for c in comics:
if c._name == delete_selected_comic.get():
c._delete_comic()
update_label()
这是我用于实际删除对象的类、函数和函数。
class Comic:
def __init__(self, name, stock):
self._name = name
self._stock = stock
comics.append(self)
comic_names.append(name)
def _delete_comic(self):
self._stock = 0
self._name = ""
del self
将 stock 和 name 设置为 0 和空白实际上不会删除对象,我不确定如何使用 del self.
任何有关如何删除此对象的帮助都会非常有用。提前致谢
解决方案
您不能删除其本身的对象。相反,您可以将其设置为None
并让垃圾收集器将其删除:
def delete_comic():
for i, c in enumerate(comics):
if c._name == delete_selected_comic.get():
comics[i] = None
update_label()
如果你真的想删除那里的对象,你可以这样做:
def delete_comic():
delete_indicies = []
for i, c in enumerate(comics):
if c._name == delete_selected_comic.get():
delete_indicies.append(i)
for i in delete_indicies:
del comics[i]
update_label()
推荐阅读
- adapter - B2Bi SFTP Server 适配器的线程和内存管理
- terminal - PhpStorm 在终端中选择文本
- asp.net - .Net Core 刷新令牌在发布后不起作用
- python - 在 2d Ising 模型中查找系统的能量
- excel - 将单元格中输入的日期与电子表格选项卡标签中的字符串进行比较
- elasticsearch - Elasticsearch 中的 params['_source'] 总是返回相同的源
- unity3d - 我的布娃娃刚体正在对自行车车身施加质量或力
- reactjs - 如何防止通过 React 中的输入字段完成的每个父状态更新时子重新渲染?
- dependency-injection - Blazor 应用程序作为 WASM 或服务器运行。无法让依赖注入在服务器模式下工作
- c - VS Code C 程序正在运行但没有显示任何内容