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語句,如下:
>>>reload(module_1)
/article/434.html 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...