2024-04-26 21:12:01 发布
网友
我真的想不出为什么python需要del关键字(而且大多数语言似乎没有类似的关键字)。例如,与其删除一个变量,不如直接将None赋给它。从字典中删除时,可以添加del方法。
del
None
有没有理由在python中保留del,或者这是python垃圾收集前的一段时间?
这是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将是未定义的。
这是
del
所做工作的一部分(来自Python Language Reference):为名称分配
None
不会从命名空间中移除名称的绑定。(我想对于移除名称绑定是否真的有用可能会有一些争论,但这是另一个问题。)
首先,除了局部变量之外,还可以删除其他内容
两者显然都应该有用。其次,对局部变量使用
del
可以使意图更加清晰。比较:到
我知道在
del foo
的情况下,目的是从作用域中删除变量。目前还不清楚foo = None
是否在这么做。如果有人刚刚分配了foo = None
,我可能认为这是死代码。但我马上就知道那些给del foo
编码的人想干什么。我发现
del
有用的地方之一是清除for循环中的无关变量:现在可以确定,如果在for循环之外使用x,那么x将是未定义的。
相关问题 更多 >
编程相关推荐