2010-02-08 40 views
2

有没有一种方法来定义像我自己在Python中的新语句,如def,with, for,.. ..。当然,我不是故意重写现有的语句。只能创建一些我自己的语句。Python:制作你自己的报表

如果是这样,我该怎么做?你能指出我关于这个问题的好文件吗?

回答

7

不,您不能在Python程序中添加新的语法。改变语言的唯一方法是编辑和重新编译语法文件并支持C代码,以获得新的更改的解释器,编译器和运行时。

+0

给它一个新的名字,这不像是“python”这个词。请不要将我们与“主要是python”的语言混淆,但由于一些新的语法,否则它们不兼容。 –

+1

尝试pythong,potang,pifun,哈哈 –

+1

是的,pythong是好的。就像植物一样,植物的基本粒子:) – tzot

3

您不能(重新)定义语言关键字而不重写编译器/解释器等。你可以做的也许是编写一个类似于DSL(域特定语言)的东西,并将你的关键字语句转换为适当的Python语句,这可能是一个更简单的路线。

2

尽管无法修改Python本身的语法(无需像Alex提到的那样重新编译),但您可以使用元编程技术。以下是关于在Python中创建DSL的演示文稿的链接。

http://blog.brianbeck.com/post/53538107/python-dsl-i

如果你不结婚,Python和Ruby是一种定义DSL的,因为它具有更广泛的元编程能力有很大的语言。

http://www.themomorohoax.com/2009/02/25/how-to-write-a-clean-ruby-dsl-rails

+2

......如果你真的对DSL很认真,也可以考虑Tcl。它可以让你创建自己的核心命令,比如你自己的if语句,你自己的while循环和重复循环等等.Tcl中没有保留字,所以你可以彻底改造任何东西。 –

1

Ren'Py是Python的一个扩展,通过实现自己的解析器和编译器允许自定义报表的例子。

0

有一些编程语言可以让你做到这一点(例如Tcl),但Python不是这些语言之一。