Python學習之模塊

Python學習目錄python

  1. 在Mac下使用Python3
  2. Python學習之數據類型
  3. Python學習之函數
  4. Python學習之高級特性
  5. Python學習之函數式編程
  6. Python學習之模塊
  7. Python學習之面向對象編程
  8. Python學習之面向對象高級編程
  9. Python學習之錯誤調試和測試
  10. Python學習之IO編程
  11. Python學習之進程和線程
  12. Python學習之正則
  13. Python學習之經常使用模塊
  14. Python學習之網絡編程

在計算機程序的開發過程當中,隨着程序代碼越寫越多,在一個文件裏代碼就會愈來愈長,愈來愈不容易維護。編程

爲了編寫可維護的代碼,咱們把不少函數分組,分別放到不一樣的文件裏,這樣,每一個文件包含的代碼就相對較少,不少編程語言都採用這種組織代碼的方式。在Python中,一個.py文件就稱之爲一個模塊(Module)。網絡

爲了不模塊名衝突,Python又引入了按目錄來組織模塊的方法,稱爲包(Package)。框架

請注意,每個包目錄下面都會有一個__init__.py的文件,這個文件是必須存在的,不然,Python就把這個目錄當成普通目錄,而不是一個包。__init__.py能夠是空文件,也能夠有Python代碼,由於__init__.py自己就是一個模塊。編程語言

使用模塊

概述

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

' a test module '

__author__ = 'Michael Liao'

import sys

def test():
    args = sys.argv
    if len(args)==1:
        print('Hello, world!')
    elif len(args)==2:
        print('Hello, %s!' % args[1])
    else:
        print('Too many arguments!')

if __name__=='__main__':
    test()
複製代碼

第1行和第2行是標準註釋,第1行註釋可讓這個hello.py文件直接在Unix/Linux/Mac上運行,第2行註釋表示.py文件自己使用標準UTF-8編碼;函數式編程

第4行是一個字符串,表示模塊的文檔註釋,任何模塊代碼的第一個字符串都被視爲模塊的文檔註釋;函數

第6行使用__author__變量是指做者。工具

以上就是Python模塊的標準文件模板。post

有個注意點:當咱們運行當前模塊文件時,Python解釋器把一個特殊變量__name__置爲__main__學習

做用域

在一個模塊中,咱們可能會定義不少函數和變量,但有的函數和變量咱們但願給別人使用,有的函數和變量咱們但願僅僅在模塊內部使用。在Python中,是經過_前綴來實現的。

正常的函數和變量名是公開的(public),能夠被直接引用,好比:abcx123PI等;

相似__xxx__這樣的變量是特殊變量,能夠被直接引用,可是有特殊用途,好比上面的__author____name__就是特殊變量,hello模塊定義的文檔註釋也能夠用特殊變量__doc__訪問,咱們本身的變量通常不要用這種變量名;

相似_xxx__xxx這樣的函數或變量就是非公開的(private),不該該被直接引用,好比_abc__abc等;

之因此咱們說,private函數和變量「不該該」被直接引用,而不是「不能」被直接引用,是由於Python並無一種方法能夠徹底限制訪問private函數或變量,可是,從編程習慣上不該該引用private函數或變量。

安裝第三方模塊

在Python中,安裝第三方模塊,是經過包管理工具pip完成的。

通常來講,第三方庫都會在Python官方的pypi.python.org網站註冊,要安裝一個第三方庫,必須先知道該庫的名稱,能夠在官網或者pypi上搜索,好比Pillow的名稱叫Pillow,所以,安裝Pillow的命令就是:

pip install Pillow
複製代碼

注:在使用Python時,咱們常常須要用到不少第三方庫,例如,上面提到的Pillow,以及MySQL驅動程序,Web框架Flask,科學計算Numpy等。用pip一個一個安裝費時費力,還須要考慮兼容性。咱們推薦直接使用Anaconda,這是一個基於Python的數據處理和科學計算平臺,它已經內置了許多很是有用的第三方庫,咱們裝上Anaconda,就至關於把數十個第三方模塊自動安裝好了,很是簡單易用。

下一篇:Python學習之面向對象編程

相關文章
相關標籤/搜索