鱼C论坛

 找回密码
 立即注册
查看: 3074|回复: 1

[已解决]求解释

[复制链接]
发表于 2022-10-11 17:38:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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可以找到这个字典
最佳答案
2022-10-11 17:55:33
本帖最后由 jackz007 于 2022-10-11 19:52 编辑

       当一个 Python 对象失去句柄的时候,也就失去了存在的价值和意义,因为,这个对象已经无法访问到了,本例中的 a 和 d 就是同一个字典对象句柄的两个标签。删除一个标签并不会删除句柄和对象,只有删除最后一个标签的时候,对象和句柄才会被真正地被删除。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-11 17:55:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-10-11 19:52 编辑

       当一个 Python 对象失去句柄的时候,也就失去了存在的价值和意义,因为,这个对象已经无法访问到了,本例中的 a 和 d 就是同一个字典对象句柄的两个标签。删除一个标签并不会删除句柄和对象,只有删除最后一个标签的时候,对象和句柄才会被真正地被删除。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 17:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表