非字符串的Python实习生

发布于 2021-01-29 18:33:24

为什么Pythonintern仅内置字符串?应该可以扩展intern到可哈希和可比较的类,对吗?

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    内联事物的目的是能够通过比较它们的内存地址来进行比较。您要确保永远不要创建两个具有相同值的对象(当程序请求创建一个与现有对象具有相同值的第二个对象时,它会收到对先前存在的对象的引用)。这要求你要实习的东西是
    不变的 ; 如果一个被拘禁对象的值可以改变,那么按地址比较它们是行不通的。

    在Python中,无法强制执行用户定义的类实例的不变性,因此,对它们进行实习并不安全。我怀疑这是实习生不覆盖类实例的主要理论原因。

    其他内置的不可变类型或者已经可以在单个机器级别的操作中进行比较(int,float等),或者 可以包含可变值的
    不可变容器(元组,frozenset)。无需实习前者,也不能安全地实习后者。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看