python是由一系列的模組組成的,每個模組就是乙個py為字尾的檔案,同時模組也是乙個命名空間,從而避免了變數名稱衝突的問題。模組我們就可以理解為lib庫,如果需要使用某個模組中的函式或物件,則要匯入這個模組才可以使用,除了系統預設的模組不需要匯入外。匯入直接使用如下語法:
import 模組名稱(不要.py字尾)
這樣匯入成功後,就可以在另外乙個模組中使用被匯入模組的功能函式或物件了。先舉例如下,比如在d:\temp目錄下建立python模組:module_1.py,內容如下:
# -*- coding:utf-8 -*-
'''module_1.py模組的內容'''
name = "鐵木箱子"
siteurl = ""
上面第一行是指定編碼格式,因為python預設是按照ascii編碼來處理的,因此就無法處理非英文語言了,通過指定編碼就可以實現國際化效果。第二行是注釋資訊,使用」』進行注釋。然後,我們通過d:\temp目錄進入到python的命令列模式,這樣就可以將當前目錄(d:\temp)作為工作目錄了,從而也就可以順利的找到了module_1這個模組了,如下:
d:\temp>python
python 2.7 (r27:82525, jul 4 2010, 09:01:59) [msc v.1500 32 bit (intel)] on win
32>>>
此時如果我們直接輸入print(siteurl),系統則會報錯,siteurl變數未定義:
>>> print(siteurl);
traceback (most recent call last):
file "", line 1, in nameerror: name 'siteurl' is not defined
>>>
所以我們需要先導入module_1的內容才算定義了siteurl變數,不過要注意的是匯入的模組的變數並不是定義在頂層命名空間,而是在模組的命名空間中,因此使用如下方式匯入後的列印變數如下:
>>>import module_1
>>>print(module_1.siteurl)
如果直接使用print(siteurl),仍然還是會報siteurl未定義的錯誤,原因就是上面說到的命名空間的問題。如果想要直接在頂層命名空間中使用該變數,可以使用如下匯入方式:
>>>from module_1 import siteurl
>>>print(siteurl)
這樣就可以將module_1模組中的siteurl變數匯入到頂層命名空間了,直接使用變數也就不會報錯了。當然我們也可以為匯入的變數重新命名,如下:
>>>from module_1 import siteurl as myurl
>>>print(myurl)
這樣就可以將siteurl的值賦給myurl這個變數了,因為是使用了from…import語句,因此是將變數繫結在頂層命名空間,我們也就可以直接使用變數名了。
需要注意的是無論是使用import還是使用from..import的方式匯入模組,其實都是在告訴python直譯器要載入指定的模組,並執行模組中的所有語句,因此如果模組中有類似print的語句時,我們在匯入的過程中也會看到這些語句的輸出。
對於每個模組的匯入,python直譯器只會匯入一次,即使重複使用import和from…import語句,也只有在pvm檢測到該模組沒有被匯入時才執行匯入動作。即使後來你修改了模組的源**,但沒有重啟pvm,python直譯器仍然是使用之前匯入的內容在處理。如果需要重新載入修改後的原始碼,一是退出python的互動模式後再進入,二是直接使用reload語句,如下:
/article/434.html>>>reload(module_1)
Python 28 模組和包的基本概念
定義 在python中,乙個 py 檔案就稱為乙個模組 使用模組的好處 最大的好處就是提高了 的可維護性 分類 三種 模組匯入方法 1.import 語句 import module1 module2 modulen 舉例 test.py import calprint cal.add 3,5 pr...
Python模組和包的概念
模組 模組是python組織 的基本方式。乙個python指令碼可以單獨執行,也可以匯入到另乙個指令碼中執行,當指令碼被匯入執行時,我們將其稱為模組 module 所有的.py檔案都可以作為乙個模組匯入。模組名與指令碼的檔名相同。模組是乙個可以匯入的python指令碼檔案。例如我們編寫了乙個名為he...
Python 模組和包的概念
python 模組和包的概念 模組 包 模組 modue 的概念 在電腦程式的開發過程中,隨著程式 越寫越多,在乙個檔案裡 就會越來越長,越來越不容易維護。為了編寫可維護的 我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的 就相對較少,很多程式語言都採用這種組織 的方式。在python...