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模塊可用短名直接用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章