今天看啥  ›  专栏  ›  Crossin的编程教室

5个有趣的Python小知识,返回结果让人出乎意料~

Crossin的编程教室  · 公众号  ·  · 2020-02-10 15:41
1 字符串驻留In [1]: a = 'something' ...: b = 'some'+'thing' ...: id(a)==id(b)Out[1]: True如果上面例子返回True,但是下面例子为什么是False:In [1]: a = '@zglg.com'In [2]: b = '@zglg'+'.com'In [3]: id(a)==id(b)Out[3]: False这与Cpython 编译优化相关,行为称为字符串驻留,但驻留的字符串中只包含字母,数字或下划线。2 相同值的不可变对象In [5]: d = {} ...: d[1] = 'java' ...: d[1.0] = 'python'In [6]: dOut[6]: {1: 'python'}### key=1,value=java的键值对神器消失了In [7]: d[1]Out[7]: 'python'In [8]: d[1.0]Out[8]: 'python'这是因为具有相同值的不可变对象在Python中始终具有相同的哈希值由于存在哈希冲突,不同值的对象也可能具有相同的哈希值。3 对象销毁顺序创建一个类SE:class SE(object): def __init__(self): print('init') def __del__(self): print ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照