0
点赞
收藏
分享

微信扫一扫

# yyds干货盘点 # 为啥print(id(dd.get('a')) is None)是False?

大家好,我是皮皮。

一、前言

前几天在Python黄金交流群【eric】问了一个Python基础的问题,这里拿出来给大家分享下。

dd = {}
print(id(dd.get('a')) is None)

这个代码结果你认为输出什么?

二、实现过程

这里他自己也在网上找到了一个答案,去掉id 就对了,代码好使:

# yyds干货盘点 # 为啥print(id(dd.get(

id(dd.get('a'))返回的是键'a'对应的值,因为字典中'a'这个键不存在,所以dd.get('a')会返回None。当使用id()函数获取对象的id时,如果该对象在内存中不存在,那么它会被创建并分配一个新的唯一标识符。因此,id(None)返回的ID是固定的,所以id(None) is None的结果为False,反之亦然。

当使用 dd.get('a') 方法时,如果字典 dd 中没有键为 'a' 的项,则返回 None。然而,id(None) 返回的是一个 int 类型的内存地址,而不是 NoneType。因此,id(dd.get('a')) 返回的是 None 对应的内存地址,而不是 None 值本身的内存地址。这个地址不为 None,因此 id(dd.get('a')) is None 表达式的结果是 False

# yyds干货盘点 # 为啥print(id(dd.get(

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python基础的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【eric】提问,感谢【王子】给出的思路和代码解析,感谢【冯诚】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

举报

相关推荐

0 条评论