python每日一帖---难懂的现象+清楚的解释---我们都一样
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python每日一帖---难懂的现象+清楚的解释---我们都一样相关的知识,希望对你有一定的参考价值。
? 在深处,我们都一样 *
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入门学习-DAY36-GIL全局解释器锁死锁现象与递归锁信号量Event事件线程queue