我真的想不出 Python 需要 del
关键字的任何原因(而且大多数语言似乎没有类似的关键字)。例如,与其删除变量,不如将 None
分配给它。当从字典中删除时,可以添加一个 del
方法。
是否有理由在 Python 中保留 del
,或者它是 Python 前垃圾收集时代的遗迹?
原文由 Jason Baker 发布,翻译遵循 CC BY-SA 4.0 许可协议
我真的想不出 Python 需要 del
关键字的任何原因(而且大多数语言似乎没有类似的关键字)。例如,与其删除变量,不如将 None
分配给它。当从字典中删除时,可以添加一个 del
方法。
是否有理由在 Python 中保留 del
,或者它是 Python 前垃圾收集时代的遗迹?
原文由 Jason Baker 发布,翻译遵循 CC BY-SA 4.0 许可协议
这部分是 del
所做的(来自 Python Language Reference ):
删除名称将从本地或全局名称空间中删除该名称的绑定
将 None
分配给名称不会从名称空间中删除名称的绑定。
(我想可能会有一些关于删除名称绑定是否真的 有用 的争论,但这是另一个问题。)
原文由 Greg Hewgill 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
首先,你可以删除局部变量以外的其他东西
两者都应该明显有用。其次,在局部变量上使用
del
可以使意图更加清晰。比较:到
我知道在
del foo
的情况下,目的是从范围中删除变量。目前尚不清楚foo = None
正在这样做。如果有人刚刚分配了foo = None
我可能认为这是死代码。但我立即知道编写代码的人del foo
正在尝试做什么。