Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
覆盖python操作符的默认行为_Python_Dynamic Languages - Fatal编程技术网

覆盖python操作符的默认行为

覆盖python操作符的默认行为,python,dynamic-languages,Python,Dynamic Languages,我知道,要改变python中运算符的默认行为,您可以覆盖一些默认方法,如+和-,如\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,:分别为\uuu和uu和\uu或uu 你知道这些关键字是否也有钩子吗?我知道重写和&或的默认行为是很奇怪的,但我需要它在运行时从python公式开始构建一个抽

我知道,要改变python中运算符的默认行为,您可以覆盖一些默认方法,如+和-,如
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,
:分别为
\uuu和uu
\uu或uu

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

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


非常感谢弗洛克斯

,并且不能重载
。如果你想写Pythonesque DSL,请使用。谢谢,你说到点子上了。然而,我认为我需要直接修改python来支持这一点。这是抽象解释技术的概念证明,所以我需要按照我说的方式来做,因为我需要在运行时决定使用这些钩子从现有代码中遵循的路径。他们编写了一个引擎,允许您使用混合了Python代码和Ren'Py语句的脚本。我的意思是,当您需要的只是一种稍微灵活一点的解析代码和生成AST的方法时,不需要在C级别修改它。