覆盖python运算符的默认行为

时间:2010-10-27 05:13:33

标签: python dynamic-languages

我知道要改变python中运算符的默认行为,你可以为+和 - 覆盖一些默认方法,如__add____sub__,但是没有找到任何覆盖它的行为的东西。 andor个关键字,而按位运算符&|分别为__and____or__

你知道这些关键词是否也有钩子?我知道覆盖and&的默认行为很奇怪。 or,但我需要这个在运行时从python公式开始构造一个抽象语法树,不要真的想以一种奇怪的方式改变它的语义。

如果没有,我想修改语言本身以获得此支持。如果有一些好的专家可以建议我这样做的正确方法请举手,否则我想我会问Guido:)

非常感谢弗洛克斯!

1 个答案:

答案 0 :(得分:2)

isandor无法重载。如果您想编写Pythonesque DSL,请使用Python language services