Skip to main content
 首页 » 编程设计

python之无法理解有关自定义 Python 的宏语法的语句

2025年05月04日21leader

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

These macros allow you to define completely custom syntax, from new constructs to new operators. There's no facility for doing this in Python as it stands.

我不明白他的意思

  • 新运算符的新构造:他指的是二元运算符,例如数学中的 +、- 和乘法吗?
  • 他的主要目标:自定义 Python 的宏语法对您有何好处?

请您参考如下方法:

毫无疑问,Cody 指的是目前 Python 中没有的全新运算符,例如(我不知道)^^ 或 ++ 或 +* 等等,不管它们是什么意思。他明确表示,宏系统可以让您为 Python 定义一个全新的语法(他的问题是关于宏定义本身的语法)。

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

>>> from __future__ import braces 
  File "<stdin>", line 1 
SyntaxError: not a chance 

所以这些人可能会通过这个宏系统为 Python 定义一个全新的语法来获得他们渴望的东西。

其他人可能会使用它来定义特定的自定义语言,这些语言大多遵循 Python 的一般大纲,但添加了特殊的新关键字,让您无需使用括号即可调用函数,等等。

事实上,这是否是一件好事,是一个古老的、没有实际意义的问题——但一些语言,如 Lisp,一直拥有如此强大的宏,许多从 Lisp 转向 Python 的人,如 Peter Norvig,可能会很高兴能找回他们过去在 Lisp 中拥有但在 Python 中缺乏的语法制定能力。