模塊的使用

Python自己就內置了不少很是有用的模塊,只要安裝完畢,這些模塊就能夠馬上使用

  Python模塊的標準文件模板
  第一行到import語句以前是標準的模板,固然也能夠所有刪掉不寫,可是,按標準辦事確定沒錯
  import開始是真正的代碼部分python

        #!/usr/bin/env python3      #讓這個hello.py文件直接在Unix/Linux/Mac上運行
        # -*- coding: utf-8 -*-        #表示.py文件自己使用標準UTF-8編碼,就是告訴解釋器請使用UTF-8編碼執行文件

        ' a test module '      #表示模塊的文檔註釋,任何模塊代碼的第一個字符串都被視爲模塊的文檔註釋

        __author__ = 'Michael Liao'    #使用__author__變量把做者寫進去,這樣當你公開源代碼後別人就能夠瞻仰你的大名
                                       #模塊定義的文檔註釋也能夠用特殊變量__doc__訪問

        import sys   #表示導入sys模塊,代碼裏sys就是一個變量,該變量指向該模塊,利用sys這個變量,就能夠訪問sys模塊的全部功能

        def test():
            args = sys.argv    #sys模塊有一個argv變量,用list存儲了命令行的全部參數
            if len(args)==1:    
                print('Hello, world!')
            elif len(args)==2:
                print('Hello, %s!' % args[1])
            else:
                print('Too many arguments!')
                
        #在命令行運行hello模塊文件時,Python解釋器把一個特殊變量__name__置爲__main__,而若是在其餘地方導入該hello模塊時,if判斷將失敗
        #所以,這種if測試可讓一個模塊經過命令行運行時執行一些額外的代碼,最多見的就是運行測試
        if __name__=='__main__':   
            test()   #裏面能夠寫一些經過命令行運行該文件時的處理,其餘模塊調用該文件時這些處理是沒法被執行的,只能在命令行時被執行
            
        #sys.argv至少有一個元素,由於第一個參數永遠是該.py文件的名稱,如:運行python hello.py得到的sys.argv就是['hello.py']
        #運行python3 hello.py Michael得到的sys.argv就是['hello.py', 'Michael]
--------------------------------------------------------------------------------------------------------------------------------------------
        #命令行執行
        >>>python3 hello.py  #輸出:Hello, world!
        >>>python hello.py Michael  #輸出:Hello, Michael!
        
        >>>import hello    #沒有打印Hello, word!,由於沒有執行test()函數
        >>>hello.test()  #輸出:Hello, world!

 

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

  公開(public)
    命名規則:xxx
    說明:正常的函數和變量名是公開的,能夠被直接引用,好比:abc,x123,PI等
編程

  特殊用途
    命名規則:__xxx__
    說明:這樣的變量是有特殊用途特的殊變量,可被直接引用
       如__author__,__name__,自定義變量通常不要用這種變量名(不是不能夠,只是最好不要寫,用python全靠自覺)
       例如,在Python中,若是調用len()函數試圖獲取一個對象的長度,實際上,在len()函數內部,它自動去調用該對象的__len__()方法
       也就是說,執行len('ABC')時,其實在內部是在執行'ABC'.__len__()函數


  非公開(private)
    命名規則:_xxx 或者 __xxx
    說明:這樣的函數或變量就是非公開的(private),不該被直接引用,好比_abc,__abc等
       Python並無一種方法能夠徹底限制訪問private函數或變量,所以只是從編程習慣上不該該引用private函數或變量,但不意味着不能引用

  關於公開與非公開函數及變量的使用原則:
    外部不須要引用的函數所有定義成private,只有外部須要引用的函數才定義爲public測試

相關文章
相關標籤/搜索