我們一路從 Python 的語言基礎、軟體開發到 Tk 、 Kivy 、 Django 的應用程式,下一步呢?
其實很多東西沒辦法在這麼短的篇幅一次把細節都講清楚,例如我們用的資料庫 (database) 是 Django 內建的 SQLite ,就實際網站而言,還有很多的資料庫可供選擇,另外我們用的伺服器也是 Django 內建的輕量級伺服器, Django 官方並不建議直接用這個內建伺服器架站,原因很簡單,內建伺服器的功能性遠不如 Apache 之類專業的伺服器軟體。
所以就 Django 的學習而言,還有很多層面需要深入了解, Tk 或 Kivy 的學習亦同,而就 Python 本身,有些細節,我們也只是稍微提了一點,並沒有詳細解釋,例如繼承 (inheritance)
# 父類別
class SuperClass:
def __init__(self):
print("superclass")
def supermethod(self):
print("supermethod")
# 子類別
class SubClass(SuperClass):
def __init__(self):
super().__init__()
print("subclass")
def submethod(self):
print("submethod")
if __name__ == "__main__":
demo = SubClass()
demo.supermethod()
demo.submethod()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:inherit.py
# 功能:示範利用 Python 的繼承
# 作者:張凱慶 */
繼承把父類別 (superclass) 放在子類別 (subclass) 後面的小括弧中,我們只有簡略的介紹子類別具有父類別的特性,像是親代遺傳一樣,卻還有很多沒有提,例如哪些會被繼承,哪些又不會。
除了繼承之外,例外處理 (exception handling) 使用關鍵字 try 、 except ,我們也沒有詳細介紹,還有關鍵字 yield 、 assert 、 lambda 等等,這些的確都很重要,對學習 Python 而言。
我們沒有詳細介紹繼承與其他內容的理由很簡單,因為一旦要很詳細的教導剛入門的初學者去寫繼承,勢必停下腳步討論很多該注意的地方,從而到利用 Tk 製作 GUI 之前的篇幅可能暴增兩倍到三倍,讀者能不能在短時間真正的消化吸收這麼多的內容,我們持保留的態度。
然而,弔詭的是,初學者只需要有觀念,不必完全理解,就能直接開發 GUI 的應用軟體 (application) 。就大多數初學者感興趣的開發項目而言,初學者會使用繼承就夠了,因為很多機會都是使用標準程式庫 (standard library) 或第三方程式庫 (third-party library) 的模組 (module) ,完全無須自己開發新的模組。
熟練一種工具(程式庫)是一種學習,熟練去開發工具(程式庫)又是另外一種學習。我們認為對初學者而言,先學會使用工具是比較重要的,至於要學習怎麼去開發工具,倒不如先熟練使用工具,玩得很熟了,箇中道理不用言語都能體會之後,再去學習開發給別人使用的工具,自然很快就得心應手。
換句話說,我們的目的是引起初學者的學習興趣,所以在這份《Python 入門指南》中,不以探討語言的細節為目的,直接引導初學者開發應用程式,想必一路順著教材順序學習的讀者,大都能自行摸索、嘗試開發一些圖形應用軟體或網站應用程式了吧!
接下來如果讀者想繼續深入 Python 程式設計,我們建議可以先拜訪 Python 官網的文件以及 Django 官網的文件,裡頭有豐富關於 Python 語言本身、標準程式庫及 Django 的資源,其他也可拜訪官網的 The Python Wiki ,裡頭有更多應用、發展、指南或是書籍的介紹等。
如果英文閱讀有問題,那就把英文學好吧!畢竟大量的資源或文件都是英文的,如果想精深程式設計,那麼面對英文是遲早的問題,所以趁早面對英文,接受英文才是良策 ^_^
或是可參考作者另一本詳細介紹 Python 語言細節的電子書
以及本站也有相當多 Python 的文章
下一步總有很多不同的選擇,選擇好自己喜歡的方向,不外就大膽去嘗試,有了經驗後就一步步累積,一點一點的進步下去囉!
中英文術語對照 | |
---|---|
應用軟體 | application |
資料庫 | database |
例外處理 | exception handling |
繼承 | inheritance |
模組 | module |
標準程式庫 | standard library |
子類別 | subclass |
父類別 | superclass |
第三方程式庫 | third-party library |
相關教學影片