垃圾收集无-差额

Python中的a = Nonedel a之间是否存在逻辑差异?

None关键字用于定义空变量或对象。在python中,None关键字是一个对象,它是NoneType类的数据类型。

del关键字用于删除对象。

如果我使用手动垃圾收集,这些内容是否相同?

a371357330 回答:垃圾收集无-差额

否,None仍然是一个占用内存并可以引用的对象(类型为NoneType),而del则从名称空间中删除了该对象的名称。

说,您在全局范围内创建了一个变量a = None。它将存在于globals()中。现在,如果要使用del a删除它,则对a的引用将不复存在。

,

易于证明自己的不同之处:

proc_model <- function(p1,p2) {
  fit <- model(data,p1,p2)
  return(model_score(fit))
}

param_pairs <- expand.grid(para1 = 1:10,para2 = 1:10)

# VECTOR/MATRIX OUTPUT
assessment <- mapply(proc_model,param_pairs$para1,param_pairs$para2)

# LIST OUTPUT
assessment <- Map(proc_model,param_pairs$para2)

换句话说,a = 5 a = None print(a == 5) # False del a print(a == 5) # Traceback (most recent call last): # File "<input>",line 1,in <module> # NameError: name 'a' is not defined 在您的会话中仍然保留名称a = None。与此相反,a会完全杀死该名称,如果您尝试引用它,则会得到一个del a

本文链接:https://www.f2er.com/2925170.html

大家都在问