Python學習(六)模組

來源:互聯網
上載者:User

標籤:

Python 模組   模組定義

    隨著程式越來越龐大,需要分隔成幾個檔案;也需要能在不同檔案中複用函數、類和變數,而不是拷貝代碼。為了滿足這些需要,Python提供了模組。

    簡單地說,模組就是一個儲存了Python代碼的檔案。模組能定義函數,類和變數。模組裡也能包含可執行檔代碼。

    模組是包括Python定義和聲明的檔案。檔案名稱就是模組名加上  .py 尾碼。(目前使用Notepad++ 學習而儲存的 .py 檔案即為模組)

    模組的模組名(作為一個字串)可以由全域變數 __name __ 得到。

    例如,在目前的目錄下建立一個名為 fibo.py 的檔案,內容如下:

 1 # Fibonacci numbers module 2  3 def fib(n):                    # write Fibonacci series up to n 4     a = 0 5     b = 1 6     while b < n: 7         print(b, end=‘ ‘)         8         b = a + b             9         a = b - a10     print()

    備忘:Notepa++ 中可分視圖查看,選擇移動到另一視圖,查看下方

    建立一 .py 檔案,如 module.py( 與 fibo.py 同一目錄),引用 fibo  import fibo ,執行 fibo下的 fib 函數  fibo.fib(1000)  (即輸出1000 內的 fibonacci數列),參見下方

 
    

 

  匯入模組

    模組需要匯入,通過上方的例子以及之前的章節,已經接觸到 import 的語句,現在具體來說明下模組的匯入。

    import modulename1 [, modulename2[,... modulenameN]  可通過 import 語句匯入一個或多個模組,模組匯入命令通常放在指令碼頂端。

    參考上例,  import fibo 該命令不會直接把fibo中的函數匯入當前,只是引入了模組名fibo,可通過模組名來訪問函數  fibo.fib(1000) 

    可在代碼中定義變數來反覆使用該函數,如:

fib = fibo.fib        # 建立函數變數fib(20)fib(100)

    from modname import name1[, name2[, ... nameN]]  從模組中匯入一個或多個指定的部分到當前命名空間中

    在 fibo.py 新增一個函數,代碼如下:

1 def fib_l(n):            # return Fibonacci series up to n2     result = []3     a = 04     b = 15     while b < n:6         result.append(b)        7         b = a + b            8         a = b - a9     return result

    通過  from fibo import fib_l  匯入 fibo 中的指定部分 fib_l,這樣不會匯入模組名 fibo

 

     from modname import *   匯入模組中的所有定義(除了以底線_命名的),這種聲明不該被過多地使用。

 

  定位模組

    當你匯入一個模組,Python解析器對模組位置的搜尋順序是:

      1. 目前的目錄

      2. 如果不在目前的目錄,Python則搜尋在shell變數PYTHONPATH下的每個目錄

      3. 如果都找不到,Python會察看預設路徑。UNIX下,預設路徑一般為/usr/local/lib/python/

    模組搜尋路徑儲存在system模組的sys.path變數中。變數裡包含目前的目錄,PYTHONPATH和由安裝過程決定的預設目錄。

 

    

    

    

 

Python學習(六)模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.