1. 程式人生 > >PYTHON-模組學習與匯入

PYTHON-模組學習與匯入

模組:

1.定義

  • 為了編寫可維護的程式碼,我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的程式碼就相對較少,很多程式語言都採用這種組織程式碼的方式。在Python中,一個.py檔案就稱之為一個模組(Module)。

2.模組好處

  • 使用模組還可以避免函式名和變數名衝突。相同名字的函式和變數完全可以分別存在不同的模組中,因此,我們自己在編寫模組時,不必考慮名字會與其他模組衝突。但是也要注意,儘量不要與內建函式名字衝突。

3.引入包作用

  • 引入了包以後,只要頂層的包名不與別人衝突,那所有模組都不會與別人衝突
    注意:每一個包目錄下面都會有一個init.py的檔案,這個檔案是必須存在的,否則,Python就把這個目錄當成普通目錄,而不是一個包。init

    .py可以是空檔案,也可以有Python程式碼,因為init.py本身就是一個模組,而它的模組名就是mycompany。

  • 例子:
    import cStringIO as StringIO
    匯入cStringIO時,用import … as …指定了別名StringIO,因此,後續程式碼引用StringIO即可正常工作。

4.函式和變數的作用域

類似xxx這樣的變數是特殊變數,可以被直接引用,但是有特殊用途,比如上面的authorname就是特殊變數,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模組可用短名直接用