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

时间:2009-06-30 20:46:45

标签: python syntax macros

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

  

这些宏允许您定义   完全自定义语法,来自new   构建新的运营商。有   没有在Python中执行此操作的工具   就目前而言。

我不确定

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

1 个答案:

答案 0 :(得分:6)

毫无疑问,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。