廖雪峯Python教程閱讀筆記——5. 模塊

5 模塊

在Python中,一個.py文件就稱爲一個模塊(Module)。我們在編寫程序時,經常使用Python內置的模塊和第三方模塊。
爲了避免模塊名衝突,Python又引入了按目錄來組織模塊的方法,稱爲包(Package)。當引入包名.模塊名後就可以使用該模塊了,不同包中的模塊名稱可以不用考慮是否重複。
請注意:每一個包目錄下,都會有一個_init_.py的文件,這個文件是必須存在的。否則,Python就把這個目錄當成普通目錄,而不是一個包。
init.py可以是空文件,也可以包含代碼,本身它就是一個模塊。模塊名就是對應的包名。
在自定義模塊時,命名要注意,避免與內置的模塊名衝突。

5.1使用模塊

舉例:使用Python內建的sys模塊

1  #!/usr/bin/env python3
2  # _*_coding:utf-8 _*_
3
4  'test module'
5
6  __author__ = 'Zhu Shidong'
7
8  import sys
9
10 def test():
11     '測試模塊'
12     args = sys.argv
13     if len(args) == 1:
14         print('Hello,World!')
15     elif len(args) == 2:
16         print('hello,%s!' % args[1])
17     else:
18        print('Too many param!')
19
20 if __name__ == '__main__':
21     test()

代碼分析:
第1行:標準註釋,該註釋可以讓次模塊在Linux/Unix/Mac上直接運行。
第2行:標準註釋,表示該文件使用標準utf-8編碼
第4行:模塊的文檔註釋。任何模塊代碼的第一行註釋都被認爲是模塊的文檔註釋。
第6行:使用__author__將作者寫入進去
以上是python的標準模板
第8行:引入sys模塊。sys有一個argv變量,用list存儲了命令行的所有參數。argv至少有一個元素,因爲第一個參數永遠是該.py文件的名稱。例如:
運行python3 hello.py獲得的sys.argv就是[‘hello.py’]
運行 python3 hello.py Michael獲得的sys.argv就是[‘hello.py’, ‘Michael]。
第20-21行:當我們在命令行直接運行hello模塊時,PYthon解釋器把一個特殊變量__name__內置爲__main__,而如果在其他地方導入該hello模塊時,if判斷將失敗,因此,這種if測試可以讓一個模塊通過命令運行時執行一些額外的代碼,最常見的就是運行測試。

  • 作用域
    變量分爲正常變量特殊變量
    公開變量:
    1 正常變量:是公開的(public),可以被直接引用,比如:abcx123
    2 特殊變量:類似__name____author__,可以被直接調用。
    非公開變量:類似_xxx__xxx這樣的函數變量是非公開的(private),不應該被直接引用,而不是不能被直接引用,是因爲Python並沒有一種方法可以完全限制訪問權限,但是從習慣上不應該引用private函數或變量

5.2安裝第三方模塊

在Python中,我們可以通過包管理工具pip完成第三方模塊的安裝。
注意:Mac和linux中有可能python3.x和python2.x並存,因此對應的pip命令是pip3
舉例第三方庫-Python Imaging Library(PIL)是Python強大的圖像處理庫。
一般來說,第三方庫都會在Python官方的pypi.python.org網站註冊,需要安裝一個第三方庫,必須知道庫的名字,可以在官網或者pypi上搜索。
其他常用的庫:
1. Mysql驅動:mysql-connector-python庫
2. 用於科學計算的庫:NumPy
3. 用於生成文本的模板工具:Jinja2

  • 模塊搜索路徑
    當試圖加載一個模塊時,Python會在制定目錄下搜索對應的.py文件,默認情況下Python解釋器會搜索當前目錄,所有已安裝的內置模塊和第三方模塊。搜索路徑存放在sys.path變量中。
    如果我們要修改搜索路徑,兩種方法:
    1. 直接修改sys.path,添加要搜索的目錄
    2. 設置環境變量:PYTHONPATH
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章