在python中覆盖内置列表语法

时间:2015-01-28 11:04:16

标签: python

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

对内置列表类进行子类化工作,您可以覆盖__builtin__.list,但我还没有找到任何改变内置语法引用的方法

__builtin__.list = ImmutableListClass

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

>>> <type 'list'>

有没有办法改变这种行为,还是在解释器中硬编码?

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

2 个答案:

答案 0 :(得分:0)

由于这些模块是用C语言编写的,因此不能使用.so扩展名。但是你可以尝试使用禁果:

http://clarete.li/forbiddenfruit/

答案 1 :(得分:-2)

是的,有可能。 This answer做了类似的事情,尽管有些说法,所以我想它可以适应。但是,我太害怕了,不能尝试。