PYTHON-模組學習與匯入
阿新 • • 發佈:2019-01-02
模組:
1.定義
- 為了編寫可維護的程式碼,我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的程式碼就相對較少,很多程式語言都採用這種組織程式碼的方式。在Python中,一個.py檔案就稱之為一個模組(Module)。
2.模組好處
- 使用模組還可以避免函式名和變數名衝突。相同名字的函式和變數完全可以分別存在不同的模組中,因此,我們自己在編寫模組時,不必考慮名字會與其他模組衝突。但是也要注意,儘量不要與內建函式名字衝突。
3.引入包作用
引入了包以後,只要頂層的包名不與別人衝突,那所有模組都不會與別人衝突
注意:每一個包目錄下面都會有一個init.py的檔案,這個檔案是必須存在的,否則,Python就把這個目錄當成普通目錄,而不是一個包。init例子:
import cStringIO as StringIO
匯入cStringIO時,用import … as …指定了別名StringIO,因此,後續程式碼引用StringIO即可正常工作。
4.函式和變數的作用域
類似xxx這樣的變數是特殊變數,可以被直接引用,但是有特殊用途,比如上面的author,name就是特殊變數,hello模組定義的文件註釋也可以用特殊變數doc訪問,我們自己的變數一般不要用這種變數名。
- 外部不需要引用的函式全部定義成private,只有外部需要引用的函式才定義為public
探究模組方法:
1.all 變數,
它給出了模組匯入所有名字代表含義,提供公用介面,輸出所有不以下劃線開頭的全域性名稱
2.help(module.using)
提供模組方法介紹等還有引數。
3.文件。提供詳細的模組文件。
print range.__doc__
4.原始碼 ,下列語句直接查找出檔案位置。
print copy.__file__
# -*- coding: utf-8 -*-
#hello.py
def hello():
print "hello world!"
def test():
hello()
if __name__ == '__main__' :
test()
#變數__name__在主程式的值是__main__,這樣子模組就可以複用,而不會引起出錯
#而在匯入的模組中就設定為模組的名字#將模組放入sys.path的路徑中,如site-packages這樣的目錄中,所有程式都能匯入模組。
import define
#匯入define package能用__init__模組其他不能用
import define.color
#匯入color模組,但只能通過全名呼叫。
from define import color
#color模組可用短名直接用