无法理解有关自定义Python宏语法的声明

Léo*_* 준영 1 python syntax macros

Cody一直在构建一个Pythonic宏语法.他说

这些宏允许您定义完全自定义语法,从新构造到新运算符.在Python中没有任何设施可以实现这一点.

我不确定他的意思

  • 新构造到新运算符:他是否引用二元运算符,如+, - 和Math中的乘法?
  • 他的主要目标:您在定制Python的宏语法方面受益匪浅?

Ale*_*lli 6

毫无疑问,科迪指的是全新的运营商,目前都没有在Python,如(我不知道)^^+++*等等,不管它们是什么意思.他明确地说宏系统允许你为Python定义一个全新的语法(他的问题是关于宏定义本身的语法).

有些人非常关心语法,例如,我更倾向于看到Python使用大括号而不是按缩进分组; 但Python本身永远不会遵循这些人的偏好......:

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
Run Code Online (Sandbox Code Playgroud)

因此,通过这个宏系统为Python定义一个全新的语法,这些人可能会获得他们渴望的东西.

其他人可能会使用它来定义特定的自定义语言,这些语言大多遵循Python的一般轮廓,但添加特殊的新关键字,让您在不使用括号的情况下调用函数,依此类推.

事实上,这是一件好事,是一个古老的,没有实际意义的问题 - 但是像Lisp这样的一些语言总是有这种力量的宏,许多从Lisp来到Python的人,比如Peter Norvig,可能会很开心恢复他们曾经在Lisp中使用的语法制作能力但缺乏Python.