五、python模块以及包
模塊:編寫的別的程序中重用一些代碼。
1 模塊的寫法:
2 使用標(biāo)準(zhǔn)庫模塊例子(sys 模塊包含了與 Python 解釋器及其環(huán)境相關(guān)的功能,也就是所謂的系統(tǒng)功能( system) ),代碼如下:
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: F:/python/demo/test.pyThe PYTHONPATH is ['F:\\python\\demo', 'F:\\python\\demo', 'C:\\Windows\\system32\\python34.zip', 'I:\\Python34\\DLLs', 'I:\\Python34\\lib', 'I:\\Python34', 'I:\\Python34\\lib\\site-packages']分析:在這一案例中,由于其是一個(gè)內(nèi)置模塊,因此 Python 知道應(yīng)該在哪里找到它。如果它不是一個(gè)已編譯好的模塊,即用 Python 編寫的模塊,那么 Python 解釋器將從它的sys.path 變量所提供的目錄中進(jìn)行搜索。如果找到了對(duì)應(yīng)模塊,則該模塊中的語句將開始運(yùn)行,并能夠?yàn)槟闼褂谩?/strong>
你可以直接導(dǎo)入位于當(dāng)前目錄的模塊。否則,你必須將你的模塊放置在sys.path 內(nèi)所列出的目錄中。另外要注意的是當(dāng)前目錄指的是程序啟動(dòng)的目錄。你可以通過運(yùn)行 import os;print(os.getcwd()) 來查看你的程序目前所處在的目錄。
3 .pyc文件?
按字節(jié)碼編譯的文件。.pyc 文件在你下一次從其它不同的程序?qū)肽K時(shí)非常有用——它將更加快速,因?yàn)閷?dǎo)入模塊時(shí)所需要的一部分處理工作已經(jīng)完成了。同時(shí),這些按字節(jié)碼編譯的文件是獨(dú)立于運(yùn)行平臺(tái)的。
注意:這些 .pyc 文件通常會(huì)創(chuàng)建在與對(duì)應(yīng)的 .py 文件所處的目錄中。如果 Python 沒有相應(yīng)的權(quán)限對(duì)這一目錄進(jìn)行寫入文件的操作,那么 .pyc 文件將不會(huì)被創(chuàng)建。
4 from..import語句。
?
2 從自定義包中引入包中.py的函數(shù):例如? from mypacket.hello import *
from util import MongoUtil # from util.MongoUtil import *#如果是第一種方法,則使用MongoUtil內(nèi)部函數(shù)時(shí)候,需要MongoUtil.function() #如果用第二種方法,則不用加前綴,可以直接使用。?
5 模塊的__name__屬性
確定模塊是獨(dú)立運(yùn)行的還是被導(dǎo)入進(jìn)來運(yùn)行 ,例如:
6 編寫自己的模塊
#在mymodule.py中寫入如下代碼 def say_hi(): print('Hi, this is mymodule speaking.') __version__ = '0.1'#另一個(gè)模塊mymodule_demo.py中寫入如下測(cè)試代碼:: import mymodulemymodule.say_hi() print('Version', mymodule.__version__)#另外一種導(dǎo)入方式 from mymodule import say_hi,__version__say_hi() print("version",__version__)注意:自己的模塊應(yīng)該放置于與其它我們即將導(dǎo)入這一模塊的程序相同的目錄下,或者放置在sys.path所列出的其中一個(gè)目錄下。
7 dir函數(shù)
內(nèi)置的 dir() 函數(shù)能夠返回由對(duì)象所定義的名稱列表 ,例如;
8 包
變量通常位于函數(shù)內(nèi)部,函數(shù)與全局變量通常位于模塊內(nèi)部。如果你希望組織起這些模塊的話,應(yīng)該怎么辦?這便是包
包是指一個(gè)包含模塊與一個(gè)特殊的 __init__.py 文件的文件夾,后者向 Python 表明這一文
件夾是特別的,因?yàn)槠浒?Python 模塊
?
注:參考《byte-of-python-chinese-edition》
?
轉(zhuǎn)載于:https://www.cnblogs.com/buptzlb/p/7538382.html
總結(jié)
以上是生活随笔為你收集整理的五、python模块以及包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql-5.7 持久化统计信息详解
- 下一篇: websocket python爬虫_p