python每日一帖---难懂的现象+清楚的解释---我们都一样
2018-09-02 09:30
603 查看
▶ 在深处,我们都一样 *
class WTF: pass
Output:
>>> WTF() == WTF() # 两个不同的对象不相等 False >>> WTF() is WTF() # id一样不相等 False >>> hash(WTF()) == hash(WTF()) # 哈希值也“应该”不相等 True >>> id(WTF()) == id(WTF()) True
解释:
当使用id函数时,Python 建立一个名为
WTF的对象并把它传入
id函数.
id函数拿到它的
id(它的内存位置), 然后丢弃这个对象。
当我们在交互器中做这些时,如果Python发现一个对象占用了未丢弃的在用的内存位置,Python就会给这个对象一个新位置。
不过为什么用
is比较结果是
False呢? 让我们来看看。
class WTF(object): def __init__(self): print("I") # 创建时触发 def __del__(self): print("D") #丢弃时触发
输出:
>>> WTF() is WTF() I # 创建1 I # 创建2,比较,内存位置不同,返回false D # 删除1 D # 删除2 False >>> id(WTF()) == id(WTF()) I #创建1 D #记住内存,连同内存一起删掉 I #创建2,它用了1的内存(因为1已经删掉),比较,两个内存相同。 D #删除2 True
相关文章推荐
- 每日一发Python---Python基础及安装
- 每日python(7)
- Python学习27:继承以及多重继承方式,MRO(方法解释顺序)
- 人生苦短,我学python之浏览器到客户端一个socket的连接及解释
- 采用Fuel Gauge可能出现的几种电量现象及解释
- XGBoost-Python完全调参指南-参数解释篇
- 【看故事】生动解释ARP欺骗、网关等一堆难懂的专业术语
- 【每日一记3.16】python学习记录3----字典,列表,元组
- Python每日小结(四)
- Python中 sys.argv[]的用法简明解释
- Python每日练习 04 你有一个目录,装有很多图片,现在你要把它们的尺寸变成不都大于Iphone5分辨率的大小
- 【C#每日一帖】【响应节能号召】关闭显示器
- 标准差(standard deviation)和标准误差(standard error)你能解释清楚吗?
- 每日一发Python---Python中双冒号的作用[::]
- Python每日一练(2):找出html中的所有链接(Xpath、正则两个版本)
- Python关键字yield的解释(stackoverflow)
- Python的super解释
- python中的__call__的个人理解(wsgi实例解释)
- 《每日一课》Python入门之其他内置模块的使用二
- [每日一帖]栏目发布公告以及D币的使用帮助