每当我使用原型脚本时,我都会使用它,并且:

  1. 使用某种常见变量(例如 fileCount), 和
  2. 有一个大方法(20多行),并且
  3. 请勿使用类或名称空间。

del 陈述方便。我正在养成不必要的坏习惯吗?是 del 完全可以避免?什么时候会是一件好事?

有帮助吗?

解决方案

我不认为 del 本身就是代码气味。

在同一名称空间中重复使用变量名称绝对是代码气味,因为在适当的情况下不使用类和其他名称空间。所以使用 del 促进这种事情是代码气味。

唯一真正适当的使用 del 我能想到的是我的头顶打破了循环引用,这些引用通常也是代码气味(而且通常不是必需的)。记住,所有人 del 可以删除 参考 到对象而不是对象本身。这将通过参考计数或垃圾收集来照顾。

>>> a = [1, 2]
>>> b = a
>>> del a
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> b
[1, 2]

您可以看到列表在 del 声明是因为 b 仍然对它进行引用。

所以, del 并不是真正的代码气味,它可以与事物相关联。

其他提示

任何在功能,类和方法中都组织得很好的代码不需要 del 除特殊情况外。旨在通过使用更多功能和方法从一开始就构建您的应用程序,避免重复使用变量名称等。

使用 del 语句还可以 - 它不会导致任何麻烦,当我使用Python作为系统上的Shell脚本以及进行脚本实验时,我经常使用它。但是,如果它经常出现在真实的应用程序或库中,则表明某些事情不正确,可能是结构性不佳的代码。我从来没有在应用程序中使用它,您很少在发布的代码上看到它在任何地方使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top