我可以为特定的python命名空间重载{}字典定义元​​字符/运算符吗?

时间:2013-10-18 02:09:25

标签: python-2.7

我可以为特定的python命名空间重载{}字典定义元​​字符/运算符吗?

我要问的是如何(在纯python中),用类型({})替换类型({})== dict == instance&& isinstance({},MyDict)== True。

我有一个python语法的配置文件。我让用户能够定义字典,但我想保证字典项的顺序与用户将它们放在代码中的顺序相同。我认为可以做到的唯一方法就是如果我可以重载围绕{}字典声明字符的句法糖。

如果无法做到,那就是一个好的答案。

谢谢, Chenz

1 个答案:

答案 0 :(得分:0)

字典文字由编译器创建(或者更确切地说,编译器发出字节码以直接创建它们)。如果你想覆盖它,那么你需要自己将源代码编译成字节码,然后遍历字节码,用你选择的字节码序列替换dict创建。