题
每当我使用原型脚本时,我都会使用它,并且:
- 使用某种常见变量(例如
fileCount
), 和 - 有一个大方法(20多行),并且
- 请勿使用类或名称空间。
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脚本以及进行脚本实验时,我经常使用它。但是,如果它经常出现在真实的应用程序或库中,则表明某些事情不正确,可能是结构性不佳的代码。我从来没有在应用程序中使用它,您很少在发布的代码上看到它在任何地方使用。
不隶属于 StackOverflow