【发布时间】:2016-06-13 08:27:46
【问题描述】:
目前正在学习 Python。 (来自 PHP)
在 Python 中有一个 delete(del) 函数来删除你的变量。
这对我来说是新的,
删除变量有什么好处?
不删除变量有什么缺点?
在什么情况下我最有可能想要删除变量?
编辑:
This question here 只是比较 del var 和 var = none 之间的差异。
我试图理解为什么你首先需要删除一个变量。
【问题讨论】:
-
你知道
del什么意思吗? -
您无需删除名称即可分配不同的名称。阅读The del statement、Names and Objects、Scopes and Namespaces 和Naming and Binding 的定义——我不懂 PHP,所以无法给你对比。最后三个非常重要。
-
@TrevorWood:阅读其他答案。有几个给出了理由,尽管在实践中,一个简单的名称
del很少有用;除非您知道不存在其他引用,否则它不能保证甚至释放内存。仅仅因为问题更关注del x与x = None并不意味着答案不能解决您的问题。 -
Facts and myths about Python names and values。你
del删除对对象的引用的东西 - 垃圾收集使用引用计数 - 在这个 SO answer regarding garbage collection 中有几个很好的链接。 -
@TrevorWood:是的。就是这样。这样做的唯一真正理由是,如果您知道自己拥有对巨大事物的唯一引用,并且您需要 现在 发布该巨大事物(仅在 CPython 中;在其他非引用计数解释器中,它已发布“一段时间”)。 99.9% 的 Python 代码没有理由将
del与普通名称一起使用,唯一严重的用例通常是删除dict(del mydict['somekey']) 中的条目或通过索引/切片从序列中删除元素(例如删除list中的偶数指数仅保留赔率,del mylist[::2])。
标签: python