0

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

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

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

如果它不能完成,那将是一个好的答案。

谢谢,陈兹

4

1 回答 1

0

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

于 2013-10-18T02:13:20.170 回答