Python 中哪些模組最有趣?
在本文中,我們將學習 Python 中最有趣的模組。以下是一些 Python 中有趣的庫。
HTTPX
HTTPX 由 Tom Christine 開發,他是一位專注於 API 設計和開發的軟體開發人員。
高效能的當前應用程式越來越多地使用非同步正規化,但在這樣做的同時,Requests 庫難以有效地完成其工作。
因此,提出 HTTPX 來克服這個問題。HTTPX 基於 Requests 的著名易用性,是一個支援 HTTP/2 和 HTTP/1.1 的非同步 HTTP 客戶端。它嚴格控制超時,並提供了一個儘可能類似於 Requests 庫的 API。使用 ASGI 協議,具有完整型別註釋的 HTTPX 還可以直接呼叫 Python Web 應用程式。庫中還包含所有常見的 Requests 功能,例如國際域名和 URL、保持活動和連線池、具有 cookie 永續性的會話等。
此外,使用高效能非同步 Web 框架,您可以為 HTTPX 使用 asyncio 或 trio。因此,HTTPX 可以處理大量查詢。

Arrow
許多 Python 開發人員都知道,Python 標準庫和某些其他低階模組中不足的日期、時間和時區方法提供了一種與日期和時間物件互動的方式。但是,它們在效能和可用性方面存在不足;例如,它們包含過多的模組和類別,這使得使用者難以記住和區分它們。還存在時區和時間戳之間耗時的轉換。
幸運的是,使用者可以在名為 Arrow 的邏輯且易於使用的 Python 模組的幫助下建立、操作、格式化和轉換日期。其主要目標是減少匯入以處理日期和時間的程式碼量。
Arrow 與 ISO 8301 和 Python 版本 2.7、3.5、3.6、3.7 和 3.8 相容。時區轉換很簡單,因為時間戳本身就是一個屬性。
可以從 Arrow 的幾個方面收集其功能。Arrow 中的 DateTime 替換會自動考慮使用者的時區。使用者將能夠獲得針對各種常見資料輸入場景的快速簡便的設計替代方案。對於諸如周偏移量之類的相對偏移量,shift 方法效果很好。字串可以自動格式化和解析,這節省了大量時間。能夠為從微秒到年的任何時間間隔設定週期、範圍、底數和上限是 Arrow 的另一個優勢。
FastAPI
顧名思義,FastAPI 是一個非常快速且強大的 Python 框架,用於開發應用程式程式設計介面。它是一個完整的 Web 應用程式框架。使用 FastAPI 可以節省 200% 到 300% 的開發時間。FastAPI 擁有超過 200 位貢獻者和 28.6K 的啟動次數,在 Python 社群中越來越受歡迎。
FastAPI 是一個基於 ASGI 規範的非同步 Web 應用程式框架。它的一些功能如下。
OpenAPI、JSON 格式和自動客戶端程式碼建立 - 全部基於開放標準。
一個 Swagger 使用者介面,允許您從瀏覽器呼叫和測試 API。
互動式 API 文件
將開發人員錯誤導致的程式碼錯誤數量減少 40%。
程式碼重複性降到最低。
具有自動完成功能的直觀編輯器支援 (VSCode/PyCharm)。
它集成了安全性和身份驗證。
一個依賴注入系統,用於自動管理所有依賴項。
提供無限的外掛支援。
完全相容 Starlette 和 Pydantic。
使用 PyTest 測試應用程式。
支援 SQL 資料庫、NoSQL 資料庫和 GraphQL。

Python Fire
Python Fire 能夠為任何給定的專案自動生成 CLI。該庫改進了 CLI 的建立。所需的 CLI 可以透過首先在命令列建立必要的函式、模組或類作為函式,然後使用 Fire 來獲得。
在建立 Python 庫時,應儘快開始測試。為了獲得所需的功能,必須在沒有 Python Fire 的情況下定義一個主要測試方法。雖然這種方法可以完成工作,但每次需要測試新功能時都需要切換到一個新的主要方法,這很麻煩並且浪費時間。如果您使用 Fire 測試命令列,則無需不斷更新主要測試方法。
如果某個函式是由其他人構建的,則僅透過檢視其程式碼可能難以理解。您應該改為在模組上呼叫 Fire。透過使用此函式,測試模組中的每個方法和函式都很簡單。

Starlette
在開發強大的 asyncio 服務方面,Starlette 是您可以信賴的輕量級 ASGI 框架或工具包。
此庫適合生產使用,幷包含許多有用的功能,例如 WebSocket 和 GraphQL 整合。Starlette 支援程序內後臺任務、跨源資源共享、GZip、靜態檔案和流式響應。所有這些功能都經過了廣泛的測試,並且程式碼庫完全是型別註釋的,並且沒有硬依賴項。
Starlette 可以完整地用作框架,也可以單獨用作 ASGI 工具集。此外,元件可以在所有 ASGI 框架中重複使用,從而形成一個相容的中介軟體和可安裝應用程式的社群。

Mypy
用 Python 編寫的靜態型別檢查器“Mypy”的目標是將動態(或“鴨子”)型別和靜態檢查的最佳功能結合在一起。Mypy 將強大的型別系統和編譯時型別檢查融入到 Python 已經令人印象深刻的表達能力和使用者友好性中。
使用 Mypy 時,程式設計師可以自由建立自己的流程。使用 Mypy,我們希望將動態和靜態型別的最佳功能結合起來用於開發軟體。因此,使用者可以在靜態型別失敗的情況下(例如在遺留程式碼中)依靠動態型別。Mypy 的錯誤報告以編譯器為基礎,使其成為理想的 lint 工具。使用 Mypy,開發人員擁有一個可靠且一致的工具來測試他們的專案及其依賴項。

Immutables
Python 的 Immutables 模組向該語言添加了一種不可變對映型別。一種雜湊陣列對映 Trie (HAMT),在 Clojure、Scala 和 Haskell 等函式式語言中很流行。在基於 HAMT 的不可變對映上執行 set() 和 get() 等操作的效率幾乎為 O(1)(對於合理小的對映為 O(log N))。
Expiring Dict
Python 的 Expiring Dict 是一個強大的快取模組。提供了一個帶有排序和自動過期值的字典,用於快取。每個字典查詢都包括檢查元素的 TTL(最大年齡)和最大長度。

結論
在本文中,我們學習了八個不同的有趣 Python 模組,以簡單、直接和高效的方式執行任務。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP