zoukankan      html  css  js  c++  java
  • is id() == 从内存的最小化占用角度解释 我是孕育者,我也应该这样设计 变,必然伴随着加法 一个list是否可以执行set()

    def f(a, b):
        print(a is b, b is a, a == b, a.__eq__(b), id(a), id(b))
    
    
    f(2, 2)
    f([2], [2])
    f('2', '2')
    f(2.2, 2.2)
    f((2.2), (2.2))
    f({2: 2}, {2: 2})
    
    True True True True 1832760416 1832760416
    False False True True 31928520 31928584
    True True True True 30448416 30448416
    True True True True 30085336 30085336
    True True True True 30085336 30085336
    False False True True 31092096 31092456
    

      

    从内存的最小化占用角度解释

     变,必然伴随着加法

    # set()  TypeError  unhashable type:'list'

    具有可变性(mutable)的值,不可哈希化

    [2,2,3,4] 可以执行set(l)
    [[2],[2],[4]] 由于其中的元素具有可变性,故不可进行set(l)操作

    一个list是否可以执行set(),取决于其元素,即待set的各个对象是否具有不变性









      

  • 相关阅读:
    .Spring事务管理
    什么叫事务;什么叫业务逻辑;什么叫持久化
    Hibernate基本应用01
    Maven整理
    责任链模式和观察者模式
    SpringBoot基础入门
    反射总结
    多线程
    IO流
    File类总结
  • 原文地址:https://www.cnblogs.com/rsapaper/p/9064860.html
Copyright © 2011-2022 走看看