发表您自己的声明

问题描述 投票:2回答:5

是否可以用Python定义自己的新语句,例如defwithfor?当然,我并不是要覆盖现有的语句,而只是创建自己的语句。

如果是这样,我该怎么办?您能指出我有关该主题的好文档吗?

python syntax keyword statements
5个回答
7
投票

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


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


1
投票

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


0
投票

有一些编程语言可以使您做到这一点(例如Tcl),但是Python并不是其中的一种。

© www.soinside.com 2019 - 2024. All rights reserved.