制作自己的语句

6 投票
5 回答
1612 浏览
提问于 2025-04-15 19:01

有没有办法在Python里定义像defwithfor这样的新语句呢?当然,我不是想覆盖已有的语句,只是想创建一些我自己的。

如果可以的话,我该怎么做呢?能给我推荐一些相关的好文档吗?

5 个回答

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

你不能随便修改编程语言的关键字,除非你重写编译器或者解释器等等。不过,你可以尝试写一种特定领域的语言(DSL),然后再写一个程序把你用的关键字转换成正确的Python语句,这样可能会简单一些。

10

不,你不能在一个Python程序里添加新的语法。想要改变这个语言,唯一的方法就是修改并重新编译语法文件和相关的C代码,这样才能得到一个新的解释器、编译器和运行时环境。

撰写回答