當前位置:首頁 » 編程語言 » python模塊的子模塊

python模塊的子模塊

發布時間: 2023-06-13 13:44:52

⑴ 那些python中的模塊

Python的解釋環境是很好用,但是如果我們需要編寫一個大型的程序的時候,解釋環境就完全不夠用了。這個時候我們需要將python程序保存在一個文件里。通常這個文件是以.py結尾的。

對於大型的應用程序來說,一個文件可能是不夠的,這個時候我們需要在文件中引用其他的文件,這樣文件就叫做模塊。

模塊是一個包含Python定義和語句的文件。文件名就是模塊名後跟文件後綴 .py 。在模塊內部,模塊名可以通過全局變數 __name__ 獲得。

還是之前的斐波拉赫數列的例子,我們在fibo.py文件中存放了函數的實現:

編寫完畢之後,我們可以在Python的解釋環境中導入它:

然後直接使用即可:

常用的函數,我們可以將其賦值給一個變數:

或者,我們在導入的時候,直接給這個模塊起個名字:

或者導入模塊中的函數:

每個模塊都有它自己的私有符號表,該表用作模塊中定義的所有函數的全局符號表。因此,模塊的作者可以在模塊內使用全局變數,而不必擔心與用戶的全局變數發生意外沖突。

前面我們提到了可以使用import來導入一個模塊,並且 __name__ 中保存的是模塊的名字。

java中的main方法一樣,如果我們想要在模塊中進行一些測試工作,有沒有類似java中main方法的寫法呢?

先看一個例子:

在模塊中,我們需要進行一個判斷 __name__ 是不是被賦值為 "__main__"。

我們這樣來執行這個模塊:

腳本執行的情況下,模塊的 __name__ 屬性會被賦值為 __main__ , 這也是例子中為什麼要這樣寫的原因。

看下執行效果:

如果是以模塊導入的話,那麼將不會被執行:

使用import導入模塊的時候,解釋器首先會去找該名字的內置模塊,如果沒找到的話,解釋器會從 sys.path變數給出的目錄列表裡尋找。

sys.path的初始目錄包括:

要想查看模塊中定義的內容,可以使用dir函數。

上面的例子列出了當前模塊中定義的內容,包括變數,模塊,函數等。

我們可以給dir加上參數,來獲取特定模塊的內容:

java中有package的概念,用來隔離程序代碼。同樣的在Python中也有包。

我們看一個Python中包的例子:

上面我們定義了4個包,分別是sound,sound.formats, sound.effects, sound.filters。

__init__.py 可以是一個空文件,也可以執行包的初始化代碼或設置 __all__ 變數。

當導入的時候, python就會在 sys.path 路徑中搜索該包。

包的導入有很多種方式,我們可以導入單個模塊:

但是這樣導入之後,使用的時候必須載入全名:

如果不想載入全名,可以這樣導入:

那麼就可以這樣使用了:

還可以直接導入模塊中的方法:

然後這樣使用:

如果一個包裡面的子包比較多,我們可能會希望使用 * 來一次性導入:

那麼如何去控制到底會導入effects的哪一個子包呢?

我們可以在 __init__.py 中定義一個名叫 __all__ 的列表,在這個列表中列出將要導出的子包名,如下所示:

這樣from sound.effects import * 將導入 sound 包的三個命名子模塊。

如果沒有定義 __all__,from sound.effects import * 語句 不會 從包 sound.effects 中導入所有子模塊到當前命名空間;它只會導入包 sound.effects。

Import 可以指定相對路徑,我們使用 . 來表示當前包, 使用 .. 來表示父包。

如下所示:



⑵ python stub是什麼意思

J2EE裡面的stub是這樣說的:為屏蔽客戶調用遠程主機上的對象,必須提供某種方式來模擬本地對象,這種本地對象稱為存根(stub),存根負責接收本地方法調用,並將它們委派給各自的具體實現對象。
stub替代子模塊(某些特定功能模塊)的模擬函數或模擬類。
在分布式對象中代表著客戶端對象,承擔著通信的職責。在VC++環境中做測試的模擬函數,並可以用stub指令指定DOS程序。

由於stub就是用來代替所測的子模塊,故而它不能為空

####在分布式計算環境中:
存根代表參與分布式對象的通信的客戶端側對象。
存根擔任分布式對象通信的角色。

存根作為一個網關,客戶端對象和伺服器端對象,通過它進行路由所有傳出請求。存根包裝客戶端對象的功能,並通過添加網路邏輯保證了可靠的客戶端和伺服器之間的通信通道。可以寫上去的存根,手動或自動生成,這取決於所選擇的通信協議。
的存根是負責:
向伺服器發起通信骨架
翻譯從調用者調用對象
編組的參數
通知該呼叫應該被調用的骨架
在網路上傳遞參數的骨架
從骨架解組的響應
通知該呼叫是完整的骨架

##模擬函數的使用 (Stub Function):
通常,此種暫時用來代替某些功能的模擬函數稱為 Stub,舉例而言,假如我們有一個裝置可以偵測溫度,但是該裝置的硬體尚未製作完成,此時,我們可以利用類似範例 1,9的函數,暫時先傳回一個溫度值,以讓後續的程式可以順利的進行測試,此種函數就稱為 Stub。

範例 1.0 用來取得溫度的 Stub 函數
void Thermometer() {
#ifdef _SIMULATOR _
return 28;
#else
#endif
}
利用 stub 函數,可以讓未完成的系統得以進行測試,其展現的行為類似於目標系統。如此,程式開發人員可以在硬體未完成之前就進行程式撰寫與測試工作,因此,能有效加快系統的開發時程,以使專案提早完成。

⑶ python數據分析需要哪些庫

1、Numpy
Numpy是Python科學計算的基礎包,它提供了很多功能:快速高效的多維數組對象ndarray、用於對數組執行元素級計算以及直接對數組執行數學運算的函數、用於讀寫硬碟上基於數組的數據集的工具、線性代數運算、傅里葉變換以及隨機數生成等。NumPy在數據分析方面還有另外一個主要作用,即作為在演算法和庫之間傳遞數據的容器。
2、Pandas
Pandas提供了快速便捷處理結構化數據的大量數據結構和函數。自從2010年出現以來,它助使Python成為強大而高效的數據分析環境。其中用得最多的Pandas對象是DataFrame,它是一個面向列的二維表結構,另一個是Series,一個一維的標簽化數組對象。Pandas兼具Numpy高性能的數組計算功能以及電子表格和關系型資料庫靈活的數據處理功能。還提供了復雜精細的索引功能,能更加便捷地完成重塑、切片和切塊、聚合以及選取數據子集等操作。
3、matplotlib
matplotlib是最流行的用於繪制圖表和其他二維數據可視化的Python庫。它最初由John
D.Hunter(JDH)創建,目前由一個龐大的開發團隊維護。它非常適合創建出版物上用的圖表。雖然還有其他的Python可視化庫,但matplotlib應用最為廣泛。
4、SciPy
SciPy是一組專門解決科學計算中各種標准問題域的包的集合,它與Numpy結合使用,便形成了一個相當完備和成熟的計算平台,可以處理多種傳統的科學計算問題。
5、scikit-learn
2010年誕生以來,scikit-learn成為了Python通用機器學習工具包。它的子模塊包括:分類、回歸、聚類、降維、選型、預處理等。與pandas、statsmodels和IPython一起,scikit-learn對於Python成為高效數據科學編程語言起到了關鍵作用。
6、statsmodels
statsmodels是一個統計分析包,起源於斯坦福大學統計學教授,他設計了多種流行於R語言的回歸分析模型。Skipper Seabold和Josef
Perktold在2010年正式創建了statsmodels項目,隨後匯聚了大量的使用者和貢獻者。與scikit-learn比較,statsmodels包含經典統計學和經濟計量學的演算法。

⑷ Python的模塊和庫的區別是哪些

python模塊是:

自我包含並且有組織的代碼片段為模塊。

表現形式為:寫的代碼保存為文件。這個文件就是一個模塊。test.py 其中文件名test為模塊名字。


python包是:

包是一個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執行環境。

通俗一點:包是一個包含__init__.py 文件的目錄,該目錄下一定得有這個__init__.py文件和其它模塊或子包。

python庫是:

參考其它編程語言的說法,就是指python中的完成一定功能的代碼集合,供用戶使用的代碼組合。在python中是包和模塊的形式。

一般按照API的慣例來設計庫。

熱點內容
8uftp上傳網站 發布:2025-02-13 03:01:57 瀏覽:242
電腦玩游戲如何配置電源 發布:2025-02-13 03:01:53 瀏覽:361
微信怎麼上傳頭像不了 發布:2025-02-13 02:57:04 瀏覽:118
c語言矩陣的轉置 發布:2025-02-13 02:38:43 瀏覽:624
rowphp 發布:2025-02-13 02:37:16 瀏覽:711
光遇安卓服周年傘在哪裡領取 發布:2025-02-13 02:22:18 瀏覽:674
寫mv腳本軟體 發布:2025-02-13 02:21:56 瀏覽:696
超內核源碼 發布:2025-02-13 02:12:54 瀏覽:444
趣粉腳本 發布:2025-02-13 02:11:23 瀏覽:952
壓縮的茶葉怎麼弄開 發布:2025-02-13 02:11:16 瀏覽:739