My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
CodingStyle  
周蟒程式哲學與風格
Traditional
Updated Jun 4, 2011 by gasolin

對編程語言的選擇態度:

  • 自然語言跟程式語言不同
  • 程式本身只是用來表達邏輯, 流程, 協助運算, 簡化重複工作的工具
  • 學了之後能應用的程式語言,對學習者才有價值

周蟒程式風格

一個程式語言一定有它的設計目的跟設計哲學。這些目的與哲學也可以作為開發或使用中遇到疑問時的參考規則。

周蟒的開發目的是做出一個輕量的,與 Python 語言互相兼容,兼顧學習與實用的中文 Python 語言。

周蟒背後的哲學有三:

  • 把事情做好 (Getting Things Done)
  • 程式碼被閱讀的機會比被修改的機會多 (Code is read much more than it it written)
  • 一致的表達方式 (There should be one obvious way to do it)

程式語言再怎麼修改得接近自然語言, 都仍然具有程式語言的邏輯與規則, 周蟒語言的目的並不是接近中文自然語言,而是做出一個實用的中文程式語言。

周蟒的長處是在於發揮 "完全相容 Python 程式語言" 的中文程式語言的優點, 所有語法,關鍵詞都依照 Python 的風格。學習周蟒後要橋接到 Python 語言相當容易。

由設計目的跟設計哲學產生出的周蟒,其寫作特色有:

  • Python 程式語言 + 中文支援
  • 互動式直譯器
  • 白話關鍵詞
  • 縮排與關鍵詞前後留白
  • 使用數學運算符號
  • 使用英文標點
  • 較多的可參考文件

術語

為更好的溝通, 周蟒定義了一些術語:
  1. 周蟒:
周蟒泛指本專案相關的內容,用在不同處的意思可指周蟒專案,周蟒程式語言,周蟒直譯器等等。
2. zhpy:
zhpy 即周蟒的英文代稱.
3. 本體程式語言

指 Python 等英語為主的程式語言, 周蟒以 Python 程式語言為本體程式語言,依附於 Python 程式語言的語法與功能。 所有實際運行最後都交給 Python 程式語言處理。

4. 替身程式語言
目前特指周蟒程式語言,像周蟒程式語言這樣的替身程式語言能使用本土語言來編程,轉換後透過本體程式語言來執行主要工作。
5. 關鍵詞

程式語言的保留字,代表某些特定功能。

6. 周蟒程式:
使用繁簡體中文撰寫,能透過周蟒執行的 Python 程式稱作周蟒(zhpy)程式。
7. 周蟒中文腳本
使用 zhpy -c 命令執行的周蟒程式, 或在程式中標頭定義了 #!/usr/bin/env zhpy 語句的腳本。
8. 嵌入周蟒
使用 zhpy.zh_exec 方法於 python 程式中執行周蟒程式。

寫作前應留意的事

程式語言與自然中文語言不同,有些使用上的限制應留意:

1. 使用 utf-8 編碼:

寫作時留意編輯器編碼必須為 utf-8。

2. 英文檔名:

為相容性, Windows 下使用 zhpy 檔案名稱應使用英文命名。 ( Ubuntu 和 MAC 上可用中文檔名 )

3. 副檔名:

zhpy 程式附檔名名稱並不強制。預設用 .twpy (繁體),.cnpy (簡體)來作識別(建議使用). 也可以使用 .py, .tw.py, .cn.py 來作附檔名以保留編輯器對 python 語法的支援。

4. 不使用中文標點:

中文標點轉換成英文標點歧異頗多,周蟒中已移除中文標點支持,這麼做得到的是更好的Python-周蟒程式互換性。

寫作中應留意的事

值得一再聲明的是:周蟒是基於 Python 程式語言的中文編程語言。

Python 程式語言的寫作風格以"清晰易讀"為優先考量。因此使用周蟒語言寫作時也應該保持這個風格。

以下是使用周蟒語言寫作時應留意的事:

1. 關鍵詞前後留白(空格):

空格有助於概略閱讀程式時迅速識別關鍵詞,因此在周蟒程式裡,關鍵詞前後需留白。

2. 縮排:

在建立新類別,新定義,或撰寫包含條件判斷(如果,當...)的語句時,需加上適當的縮排。 在周蟒中採用4個空白鍵當作一個基本的縮排單位。請不要使用 tab 鍵來代替空白鍵。

3. 變量和函數的命名規範:

變量和函數的命名並沒有強制的規則,不過可以試著使用"類"(class)以"名詞"命名,"方法"(method),函式(function)以動詞命名的規則。

4. 像 Python 人一樣編程(Pythonic)

周蟒程式承繼 Python 程式固有的彈性,雖然你可以將周蟒寫得像在使用其他語言一般,但最好還是能寫得像 Python 程式。 咬一口周蟒Code Like a Pythonista 都是很好的參考資料。

Comment by project member Zoom.Quiet, Aug 24, 2007

建议,文件名的约定修订为 .tw.py 和 .cn.py 以便各种编辑器可以识别为标准Python 支持己有的各种缩进支持?!

Comment by project member gasolin, Aug 26, 2007

Zoom Quiet 好建議, 採納!

Comment by project member Zoom.Quiet, Apr 26, 2008

像Python人? 这个有专用名词的吧, Pythonic ?

Comment by project member gasolin, Apr 27, 2008

給初學者看誰會知道什麼叫 Pythonic? 只好大致翻一下囉 :)


Sign in to add a comment
Powered by Google Project Hosting