gpt4 book ai didi

非字符串的 Python 实习生

转载 作者:太空狗 更新时间:2023-10-29 20:44:16 26 4
gpt4 key购买 nike

为什么 Python 的 intern 只针对字符串内置?应该可以将 intern 扩展到可哈希和可比较的类,对吧?

最佳答案

实习事物的目的是能够通过比较它们的内存地址来比较它们;您确保永远不会创建两个具有相同值的对象(当程序请求创建第二个具有与现有对象相同值的对象时,它会收到对预先存在的对象的引用)。这要求你实习的东西是不可变的;如果驻留对象的值可能发生变化,则按地址比较它们是行不通的。

在 Python 中,不可能强制用户定义的类实例的不变性,因此实习它们是不安全的。我怀疑这是实习生不涵盖类实例的主要原因。

其他内置的不可变类型要么已经在单个机器级操作中具有可比性(int、float 等),要么是可以包含可变值(tuple、frozenset)的不可变容器。前者没必要实习,后者也不能安全实习。

关于非字符串的 Python 实习生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6934202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com