Python學習--模塊

模塊

 

  • 簡介

        你已經學習瞭如何在你的程序中定義一次函數而重用代碼。如果你想要在其他程序中重用很多函數,那麼你該如何編寫程序呢?你可能已經猜到了,答案是使用模塊。模塊基本上就是一個包含了所有你定義的函數和變量的文件。爲了在其他程序中重用模塊,模塊的文件名必須以.py爲擴展名。
        模塊可以從其他程序輸入以便利用它的功能。這也是我們使用Python標準庫的方法。
        下面的例子告訴我們如何使用標準庫模塊。

import sys

print 'The command line arguments are:'

for i in sys .argv:
    print i
    
print '\n\nThe PYTHONPATH is' , sys .path, '\n'

        輸出

The command line arguments are:
D:\HelloWord\src\moudle\test\sysModuleTest.py


The PYTHONPATH is ['D:\\HelloWord\\src\\moudle\\test', 'D:\\HelloWord\\src', 
'D:\\Java\\Python27\\python27.zip', 'D:\\Java\\Python27\\DLLs', 'D:\\Java\\Python27\\lib', 
'D:\\Java\\Python27\\lib\\plat-win', 'D:\\Java\\Python27\\lib\\lib-tk', 
'D:\\Java\\Python27', 'D:\\Java\\Python27\\lib\\site-packages'] 

        首先,我們利用import語句輸入sys模塊。
        當Python執行import sys語句的時候,它在sys.path變量中所列目錄中尋找sys.py模塊。如果找到了這個文件,這個模塊的主塊中的語句將被運行,然後這個模塊將能夠被你使用。
        sys模塊中的argv變量通過使用點號指明,sys.argv這種方法的一個優勢是這個名稱不會與任何在你的程序中使用的argv變量衝突。另外,它也清晰地表明瞭這個名稱是sys模塊的一部分。
        sys.argv變量是一個字符串的列表。
        注意:1)Python從0開始計數,而非從1開始。

                   2)初始化過程僅在我們第一次輸入模塊的時候進行。

                   3)“sys”是“system”的縮寫。

 

  • 字節編譯的.pyc文件

        輸入一個模塊相對來說是一個比較費時的事情,所以Python做了一些技巧,以便使輸入模塊更加快一些。一種方法是創建字節編譯的文件,這些文件以.pyc作爲擴展名。字節編譯的文件與Python變換程序的中間狀態有關。當你在下次從別的程序輸入這個模塊的時候,.pyc文件是十分有用的,因爲一部分輸入模塊所需的處理已經完成了。另外,這些字節編譯的文件也是與平臺無關的。

 

  • from..import語句

如果你想要直接輸入argv變量到你的程序中(避免在每次使用它時打sys.),那麼你可以使用from sys import argv語句。如果你想要輸入所有sys模塊使用的名字,那麼你可以使用from sys import *語句。這對於所有模塊都適用。一般說來,應該避免使用from..import而使用import語句,因爲這樣可以使你的程序更加易讀,也可以避免名稱的衝突。

  • 模塊的__name__

每個模塊都有一個名稱,在模塊中可以通過語句來找出模塊的名稱。當一個模塊被第一次輸入的時候,這個模塊的主塊將被運行。假如我們只想在程序本身被使用的時候運行主塊,而在它被別的模塊輸入的時候不運行主塊,我們該怎麼做呢?這可以通過模塊的name屬性完成。
使用模塊的__name__的方法見下面示例

if __name__ == '__main__' :
    print 'This program is being run by itself'
else :
 print 'I am being imported from another module'

輸出

$ python using_name.py
This program is being run by itself
$ python
>>> import using_name
I am being imported from another
module
>>>

        每個Python模塊都有它的__name__,如果它是'__main__',這說明這個模塊被用戶單獨運行,我們可以進行相應的恰當操作。

 

  • 製造你自己的模塊

        創建你自己的模塊是十分簡單的,你一直在這樣做!每個Python程序也是一個模塊。你已經確保它具有.py擴展名了。下面這個例子將會使它更加清晰。
        創建你自己的模塊的方法見下面示例:

        1.首先,我們先創建一個自己的模塊,它與我們普通的Python程序相比並沒有什麼特別之處。

def sayhi ():
    print 'Hi, this is mymodule speaking.'
version = '0.1'

        2.然後,看看如何在我們別的Python程序中使用這個模塊。

import mymodule

mymodule.sayhi()
print 'Version' , mymodule.version

輸出

Hi, this is mymodule speaking.
Version 0.1

 

  • dir()函數

        你可以使用內建的dir函數來列出模塊定義的標識符。標識符有函數、類和變量。當你爲dir()提供一個模塊名的時候,它返回模塊定義的名稱列表。如果不提供參數,它返回當前模塊中定義的名稱列表。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章