重写python中的内置列表语法

重写python中的内置列表语法,python,Python,我想尝试用类似clojure的不可变数据结构替换python的可变数据结构 子类化builtin list类是有效的,您可以重写uu builtin_uu.list,但我还没有找到任何方法来更改builtin语法所指的内容 __builtin__.list = ImmutableListClass my_list = [1, 2, 3] print type(my_list) >>> <type 'list'> 有没有办法改变这种行为,或者它是在解释器中硬编码

我想尝试用类似clojure的不可变数据结构替换python的可变数据结构

子类化builtin list类是有效的,您可以重写uu builtin_uu.list,但我还没有找到任何方法来更改builtin语法所指的内容

__builtin__.list = ImmutableListClass

my_list = [1, 2, 3]
print type(my_list)

>>> <type 'list'>
有没有办法改变这种行为,或者它是在解释器中硬编码的


免责声明:我知道这不应该在一个严肃的项目中进行,这纯粹是为了我自己的娱乐。

是的,这是可能的。做了一些类似的事情,尽管与dicts有关,所以我认为它可以被改编。但是,我太害怕了,不敢尝试。

你不能,因为这些模块是用C编写的,因此有.so扩展。但是,您可以尝试使用禁果:


出于娱乐目的,您可以在python中查找元组:,它们在默认情况下是不可变的,您不需要重写任何内容:PYou可以使用colections.UserList并重写方法我接受这个答案,因为似乎唯一的可能性是使用禁果来修改,而不是替换[1,2,3]语法使用的现有列表类型。