2010-02-08 78 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不是這些語言之一。