Sharing

2011年10月26日 星期三

Python 學習手冊第三版筆記 (五)


CH.18 模組: 大藍圖

網路上 Python Standard library 真是多的誇張呀~ 看起來還是要花一點時間瀏覽一下基本的東西,然後剩下的只能邊用邊查了! 這讓我覺得 Python 真是好物,library 很齊全而且都有統一整理起來。


CH.19 模組撰碼基礎

Programming Python
Free online Python Programming Tutorial

使用模組幾個注意的點

  • 匯入只會發生一次, 這也順便解決部份 recursive import 的問題, 而 reload 可強制重新 import
  • 沒有必要就少用 from,會模糊掉模組空間
  • 模組程式碼絕無法看見其他模組內的名稱,除非刻意予以匯入,P.402 的例子是在說明這點,如果我把 modb 加一行,會發現 modb 內的 X 值改變了,原因是我們強迫在 modb 內複製一份 moda 的 X,但同時要強調的是這只是複製品,所以 moda.X 最終結果會是 99 ,而本地的 X 絕對不會受到影響

    X = 11
    import moda
    from moda import X   # 強迫把 X import 進來且複製一份
    moda.f()
    print X, moda.X
    

    >>> 
    loading moda...
    loading moda finish 
    88 99
    

CH.20 模組套件

套件的匯入是利用指定目錄路徑,這一點很像 Java 的設計,大家可以同時寫自己的 utility.py 而不會彼此衝突到

CH.21 高等模組議題

__name__ 預設是 '__main__',但如果檔案是被匯入的,則會被改成其模組名稱,用途之一是把自我測試呼叫包放在檔案內,被人匯入時又不會被執行,另一個可能會用到的是 __file__

if __name__ == '__main__':
    test()    # test code


import as 延伸功能,這個有點像是 alias 功能

比較這兩種寫法,前者在使用 function 時必須把全部的名字寫出來,後者則不需要
import sound.effects.echo
sound.effects.echo.echofilter(...)

from sound.effects import echo
echo.echofilter(...)



沒有留言: