在CPython中,一些类型为int
,str
和tuple
的值被缓存:
>>> 1 is eval('1')
True
>>> "foo" is eval('"foo"')
True
>>> () is eval('()')
True
CPython不会重新创建现有实例,而是重用现有实例。我的问题是,哪种类型的Python需要进行这种缓存?是否可以缓存complex
实例? object
或bytearray
或range
或slice
或memoryview
呢?在哪里记录?
(请注意,我要问的是python语言,不是不是 CPython实现。)