python模块使用_一文让你学会所有的python模块使用
部分高等技能:為了削減一個編譯模塊的大年夜小,你可以在 Python 敕令行中應(yīng)用 -O 或者 -OO。-O 參數(shù)刪除了斷言語句,-OO 參數(shù)刪除了斷言語句和 __doc__ 字符串。
因?yàn)槟承┓ǘ劝駱右栏接谶@些變量的可用性,你應(yīng)當(dāng)只在肯定無誤的場合應(yīng)用這一選項(xiàng)。“優(yōu)化的” 模塊有一個 .pyo 后綴而不是 .pyc 后綴。將來的版本可能會改變優(yōu)化的效不雅。
來自 .pyc 文件或 .pyo 文件中的法度榜樣不會比來自 .py 文件的運(yùn)行更快;.pyc 或 .pyo 文件只是在它們加載的時刻更快一些。
compileall 模塊可認(rèn)為指定目次中的所有模塊創(chuàng)建 .pyc 文件(或者應(yīng)用 -O 參數(shù)創(chuàng)建 .pyo 文件)。
在 PEP 3147 中有很多關(guān)這一部分內(nèi)容的細(xì)節(jié),并且包含了一個決定計劃流程。
標(biāo)準(zhǔn)模塊
這兩個變量只在說冥器的交互模式下有意義。
變量 sys.path 是說冥器模塊搜刮路徑的字符串列表。它由情況變量 PYTHONPATH 初始化,如不雅沒有設(shè)定 PYTHONPATH ,就由內(nèi)置的默認(rèn)值初始化。你可以用標(biāo)準(zhǔn)的字符串操作修改它
dir() 函數(shù)
內(nèi)置函數(shù) dir() 用于按模塊名搜刮模塊定義,它返回一個字符串類型的存儲列表:
python fibo.py
無參數(shù)調(diào)用時,dir() 函數(shù)返回當(dāng)前定義的定名:
留意該列表列出了所有類型的名稱:變量,模塊,函數(shù),等等。
dir() 不會列出內(nèi)置函數(shù)和變量名。如不雅你想列出這些內(nèi)容,它們在標(biāo)準(zhǔn)模塊 builtins 中定義:
包
包平日是應(yīng)用用“圓點(diǎn)模塊名”的構(gòu)造化模塊定名空間。例如,名為 A.B的模塊表示了名為 A 的包中名為 B 的子模塊。正如同用模塊來保存不合的模塊架構(gòu)可以避免全局變量之間的互相沖突,應(yīng)用圓點(diǎn)模塊名保 存像 NumPy 或Python Imaging Library 之類的不合類庫架構(gòu)可以避免模塊之間的定名沖突。
假設(shè)你如今想要設(shè)計一個模塊集(一個“包”)來同一處理聲音文件和聲音數(shù)據(jù)。存在幾種不合的聲音格局(平日由它們的擴(kuò)大名來標(biāo)識,例如:.wav, .aiff,.au ),于是,為了在不合類型的文件格局之間轉(zhuǎn)換,你須要保護(hù)一個賡續(xù)增長的包集合。可能你還想要對聲音數(shù)據(jù)做很多不合的操作(例如混音,添加反響,應(yīng)用均衡 功能,創(chuàng)建一小我造效不雅),所以你要參加一個無窮流模塊來履行這些操作。你的包可能會是這個樣子(經(jīng)由過程分級的文件體系來進(jìn)行分組):
當(dāng)導(dǎo)入這個包時,Python 經(jīng)由過程 sys.path 搜刮路徑查找包含這個包的子目次。
為了讓 Python 將目次當(dāng)做內(nèi)容包,目次中必須包含 __init__.py 文件。這是為了避寐一?含有爛俗名字的目次無意中隱蔽了稍后在模塊搜刮路徑中出現(xiàn)的有效模塊,比如 string。最簡單的情況下,只須要一個空的__init__.py 文件即可。當(dāng)然它也可以履行包的初始化代碼,或者定義稍后介紹的 __all__ 變量。
用戶可以每次只導(dǎo)入包里的特定模塊,例如:import sound.effects.echo
如許就導(dǎo)入了 sound.effects.echo 子模塊。它必須經(jīng)由過程完全的名稱來引用:sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
導(dǎo)入包時有一個可以選擇的方法:from sound.effects import echo
如許就加載了 echo 子模塊,并且使得它在沒有包前綴的情況下也可以應(yīng)用,所以它可以如下方法調(diào)用:echo.echofilter(input, output, delay=0.7, atten=4)
還有另一種變體用于直接導(dǎo)入函數(shù)或變量:from sound.effects.echo import echofilter
如許就又一次加載了 echo 子模塊,但如許就可以直接調(diào)用它的 echofilter() 函數(shù):echofilter(input, output, delay=0.7, atten=4)
須要留意的是應(yīng)用 from package import item 方法導(dǎo)入包時,這個子項(xiàng)(item)既可所以包中的一個子模塊 (或一個子包),也可所以包中定義的其它定名,像函數(shù)、類或變量。import 語句起首查對是否包中有這 個子項(xiàng),如不雅沒有,它假定則是一個模塊,嘗嘗試加載它。如不雅沒有找到它,會激發(fā)一個 ImportError 異常。
除了包含函數(shù)定義外,模塊也可以包含可履行語句。這些語句一般用來初始化模塊。他們僅在 第一次 被導(dǎo)入的處所履行一次。
相反,應(yīng)用類似 import item.subitem.subsubitem 如許的語法時,這些子項(xiàng)必須是包,最后的子項(xiàng)可所以包或 模塊,但不克不及是前面子項(xiàng)中定義的類、函數(shù)或變量。
大年夜 * 導(dǎo)入包
那么當(dāng)用戶寫下 from sound.effects import *時會產(chǎn)生什么事?幻狹闥楝老是欲望在文件體系中找出包中所 有的子模塊,然后導(dǎo)入它們。這可能會花掉落很長時光,并且出現(xiàn)等待之外的界線效應(yīng),導(dǎo)出了欲望只能顯式導(dǎo)入的包。
__all__ = ["echo", "surround", "reverse"]
推薦閱讀
HackerRank 近日對約 4 萬名開辟者進(jìn)行了查詢拜訪,并宣布了名為“2018 年開辟者技能申報”的查詢拜訪結(jié)不雅。有趣的是,申報發(fā)明,固然 Go、Kotlin 等新編程說話在所有開辟者的>>>詳細(xì)閱讀
地址:http://www.17bianji.com/lsqh/40501.html
總結(jié)
以上是生活随笔為你收集整理的python模块使用_一文让你学会所有的python模块使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年联盟营销的7家最佳网络托管提供
- 下一篇: 如何在Mac电脑中切换系统电脑如何切换窗