del在python中什么时候有用?

2024-04-26 21:12:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的想不出为什么python需要del关键字(而且大多数语言似乎没有类似的关键字)。例如,与其删除一个变量,不如直接将None赋给它。从字典中删除时,可以添加del方法。

有没有理由在python中保留del,或者这是python垃圾收集前的一段时间?


Tags: 方法none语言字典关键字垃圾del理由
3条回答

这是del所做工作的一部分(来自Python Language Reference):

Deletion of a name removes the binding of that name from the local or global namespace

为名称分配None不会从命名空间中移除名称的绑定。

(我想对于移除名称绑定是否真的有用可能会有一些争论,但这是另一个问题。)

首先,除了局部变量之外,还可以删除其他内容

del list_item[4]
del dictionary["alpha"]

两者显然都应该有用。其次,对局部变量使用del可以使意图更加清晰。比较:

del foo

foo = None

我知道在del foo的情况下,目的是从作用域中删除变量。目前还不清楚foo = None是否在这么做。如果有人刚刚分配了foo = None,我可能认为这是死代码。但我马上就知道那些给del foo编码的人想干什么。

我发现del有用的地方之一是清除for循环中的无关变量:

for x in some_list:
  do(x)
del x

现在可以确定,如果在for循环之外使用x,那么x将是未定义的。

相关问题 更多 >