G-Bule 发表于 2022-10-11 17:38:52

求解释

3. 请问下面代码中,del d 这个语句,是单独删除 d 变量还是将 d 变量和其指定的字典一起干掉呢?
d = dict.fromkeys("Fish", 250)
del d
答:显然是一起干掉,渣都不剩~# 对此我存疑

但是
>>> d = dict.fromkeys("Fish", 250)
>>> a = d # 这里我理解为将变量b的引用拷贝给变量a
>>> del d
>>> d
Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
    d
NameError: name 'd' is not defined
>>> a
{'F': 250, 'i': 250, 's': 250, 'h': 250}

所以我觉得del d只是单独删除变量d,而字典还在,因为通过变量a可以找到这个字典

jackz007 发表于 2022-10-11 17:55:33

本帖最后由 jackz007 于 2022-10-11 19:52 编辑

       当一个 Python 对象失去句柄的时候,也就失去了存在的价值和意义,因为,这个对象已经无法访问到了,本例中的 a 和 d 就是同一个字典对象句柄的两个标签。删除一个标签并不会删除句柄和对象,只有删除最后一个标签的时候,对象和句柄才会被真正地被删除。
页: [1]
查看完整版本: 求解释