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

标签 python syntax macros

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 中缺乏的语法制定能力。

关于python - 无法理解有关自定义 Python 的宏语法的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1065966/

相关文章:

python - 是否存在无法通过 Selenium 自动化的页面?

json - 这个描述Json语法用什么语言来解释呢?

php - 引用名称中包含破折号的对象属性

c++ - 在大型模板参数列表的情况下宏的便利性

c - 哪个 boost 宏允许我在程序中插入可变数量的语句

Python 从列表名称而不是列表项返回字符

python - 使用 wxPython 在动态创建的按钮中发送变量

c++ - OpenMesh 无法在最小/最大宏处于事件状态的情况下进行编译

Python 值错误 : expected ':' after format specifier

syntax - 编程语言语法中尾随逗号的历史