有没有办法在python中定义我自己的def
,with
,for
等新语句。当然,我并不是要覆盖现有的陈述。只创建我自己的一些。
如果是这样,我该怎么办?你能指点我这个主题的好文档吗?
答案 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不是那些语言之一。