Python:制作自己的陈述

时间:2010-02-08 15:58:51

标签: python

有没有办法在python中定义我自己的defwithfor等新语句。当然,我并不是要覆盖现有的陈述。只创建我自己的一些。

如果是这样,我该怎么办?你能指点我这个主题的好文档吗?

5 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:3)

如果不重写编译器/解释器/等,就不能(重新)定义语言关键字。您可以做的可能是编写类似DSL(特定于域的语言)的东西,并将您的关键字语句转换为适当的python语句,这可能是一种更容易的路径。

答案 2 :(得分: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

答案 3 :(得分:1)

Ren'Py是Python的扩展示例,它通过实现自己的解析器和编译器来允许自定义语句。

答案 4 :(得分:0)

有一些编程语言允许你这样做(例如Tcl),但Python不是那些语言之一。