每当我处理原型脚本时,我倾向于使用它,并且:
fileCount
)和在这种情况下,为了避免潜在的变量冲突,我会在完成后立即删除bugger.我知道,在生产代码中我应该避免使用1.,2.和3.,但是从原型工作到完全抛光的类是非常耗时的.有时我可能想要解决一个次优,快速的重构工作.在那种情况下,我发现保持这些del
陈述很方便.我是否养成了不必要的坏习惯?是del
完全可以避免的?什么时候会好的?
aar*_*ing 23
我不认为这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]
Run Code Online (Sandbox Code Playgroud)
您可以看到列表在del
语句后保持活动状态,因为它b
仍保留对它的引用.
因此,虽然del
它不是真正的代码味道,但它可以与事物相关联.
del
除非在特殊情况下,否则任何在函数,类和方法中组织良好的代码都不需要.旨在通过使用更多功能和方法从一开始就构建您的应用程序,避免重用变量名称等.
使用del
语句是可以的 - 它不会导致任何麻烦,当我使用Python作为我系统上的shell脚本的替代品时,以及当我进行脚本实验时,我经常使用它.但是,如果它经常出现在真实的应用程序或库中,则表明某些东西不是很好,可能是结构严重的代码.我从来没有在应用程序中使用它,并且很少看到它在已发布的代码上的任何地方使用.