Python學習筆記(十三) 模組基礎

2021-06-16 22:33:13 字數 1274 閱讀 8321

以mark lutz著的《python學習手冊》為教程,每天花1個小時左右時間學習,爭取兩周完成。 --- 寫在前面的話

2013-7-22 22:00 學習筆記

1,每乙個python檔案都是乙個模組。模組將變數名封裝進了自包含的軟體包,這一點可以避免變數名的衝突。

2,匯入模組不同於c語言中的#include,並非只是把乙個文字內容插入到另乙個檔案中。匯入其實是執行時運算。

3,import會依次搜尋以下目錄:

程式的主目錄

pythonpath目錄

標準鏈結庫目錄

任何.pth檔案的內容

這個四個元件組合起來就是sys.path。

4,import b 會載入如下檔案:

如果在相同目錄下找到b.py和b.so,python會遵循一定的標準進行挑選,但這個挑選順序並不能保證永遠不變,因此不要依賴這個挑選標準。

5,以位元組碼的形式分發程式,可以避免公開源**。

7,from會把變數名複製到另乙個作用域,避免使用模組來引用。*表示複製模組中的所有變數。例如:

import module1

module1.printer('hello world')

from module1 import printer

printer('hello world')

from module1 imort *

printer('hello world')

8,預設情況下,import匯入只發生一次,因為該開銷較大。

9,import和from都是賦值語句。前者將整個模組物件賦值給乙個變數名,後者將乙個或多個變數名賦值給另乙個模組中同名的物件。from語句會讓變數的位置變得更隱秘和模糊。

10,模組m的命名空間可以通過屬性__dict__或dir(m)獲得。

11,需要注意模組匯入後的作用域。例如有乙個模組檔案moda.py

x = 88

def fun():

global x

x = 99

匯入該模組:

x = 11

import moda

moda.fun()

print x,moda.x

輸出結果為:

11 99

12,reload是python中的內建函式,而不是語句。傳遞給reload函式的是已經存在的模組物件,而不是變數名。關於reload有一些注意點:

Python學習筆記(十三)

模組包 if name main 軟體目錄結構規範 作業 atm 購物 程式 import 語句 import module1 module2 modulen 當我們使用import語句的時候,python直譯器通過自己的搜尋路徑 存在sys.path裡 進行搜尋from import 語句 fro...

python基礎學習筆記(十三)

re模組包含對 正規表示式。本章會對 re模組主要特徵和正規表示式進行介紹。什麼是正規表示式 正規表示式是可以匹配文字片段的模式。最簡單的正規表示式就是普通字串,可以匹配其自身。換包話說,正規表示式 python 可以匹配字串 python 你可以用這種匹配行為搜尋文字中的模式,並且用計算後有值併發...

Python學習筆記(十三) 類

本節主要對python中類的概念進行介紹。類完全由物件導向概念所引出。定義乙個類 class people 幫助資訊 number 100 建構函式,初始化方法,當建立乙個類的時候,首先會呼叫它 def init self,name,age self.name name self.age age d...