del 什么时候在 Python 中有用?

新手上路,请多包涵

我真的想不出 Python 需要 del 关键字的任何原因(而且大多数语言似乎没有类似的关键字)。例如,与其删除变量,不如将 None 分配给它。当从字典中删除时,可以添加一个 del 方法。

是否有理由在 Python 中保留 del ,或者它是 Python 前垃圾收集时代的遗迹?

原文由 Jason Baker 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 511
2 个回答

首先,你可以删除局部变量以外的其他东西

del list_item[4]
del dictionary["alpha"]

两者都应该明显有用。其次,在局部变量上使用 del 可以使意图更加清晰。比较:

 del foo

foo = None

我知道在 del foo 的情况下,目的是从范围中删除变量。目前尚不清楚 foo = None 正在这样做。如果有人刚刚分配了 foo = None 我可能认为这是死代码。但我立即知道编写代码的人 del foo 正在尝试做什么。

原文由 Winston Ewert 发布,翻译遵循 CC BY-SA 3.0 许可协议

这部分是 del 所做的(来自 Python Language Reference ):

删除名称将从本地或全局名称空间中删除该名称的绑定

None 分配给名称不会从名称空间中删除名称的绑定。

(我想可能会有一些关于删除名称绑定是否真的 有用 的争论,但这是另一个问题。)

原文由 Greg Hewgill 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题