【问题标题】:Reasons for wanting to delete a variable in Python [duplicate]想要在 Python 中删除变量的原因 [重复]
【发布时间】:2016-06-13 08:27:46
【问题描述】:

目前正在学习 Python。 (来自 PHP) 在 Python 中有一个 delete(del) 函数来删除你的变量。 这对我来说是新的,

删除变量有什么好处?

不删除变量有什么缺点?

在什么情况下我最有可能想要删除变量?

编辑: This question here 只是比较 del varvar = none 之间的差异。 我试图理解为什么你首先需要删除一个变量。

【问题讨论】:

  • 你知道del什么意思吗?
  • 您无需删除名称即可分配不同的名称。阅读The del statementNames and ObjectsScopes and NamespacesNaming and Binding 的定义——我不懂 PHP,所以无法给你对比。最后三个非常重要。
  • @TrevorWood:阅读其他答案。有几个给出了理由,尽管在实践中,一个简单的名称del 很少有用;除非您知道不存在其他引用,否则它不能保证甚至释放内存。仅仅因为问题更关注del xx = 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


【解决方案1】:

虽然您的问题似乎指向相同的想法。但我试图以你要求的方式回应。

删除变量的好处 它释放内存中该变量占用的内存。删除变量后,RAM 可用于其他繁重的任务(如读取文件、加载图像等)

不删除变量的缺点 如果您不删除使用图像/视频文件初始化的变量(例如 10),那么您可以猜测自己可能会耗尽内存。现在猜猜如果视频是 5K,那么你很可能会耗尽内存。这是del 会来拯救你的程序。

可能需要删除变量的情况 当您确定将来永远不需要该变量时。 或者,当您可能遇到内存不足的情况时。

【讨论】:

  • 谢谢拉胡尔,所以作为一般经验法则,我应该定期删除变量吗?
  • 不定期。但仅在需要时。
  • @TrevorWood:一点也不。函数退出时会自动清理变量。除非你有一些不寻常的原因需要尽快清理它们,否则永远不要使用del,这只是在 Python 为你做的事情上浪费时间。
  • @TrevorWood - 它不是那么简单,当名称超出范围时,名称/引用/绑定可以消失
  • 啊,好吧,我明白了,所以如果我不再使用它,我应该不管它。 (如果它不是一个大变量)谢谢大家!
猜你喜欢
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2022-01-14
  • 1970-01-01
  • 2020-03-01
  • 2014-10-09
  • 1970-01-01
相关资源
最近更新 更多