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