△ △ 請給「 Python貓 」加星標 ,以免錯過文章推播
你好,我是貓哥。這裏每周分享優質的 Python、AI 及通用技術內容,大部份為英文。本周刊開源,歡迎 投稿 [1] 。另有 電報頻道 [2] 作為副刊,補充釋出更加豐富的資訊,歡迎關註。
特別提醒: 本期周刊贈書 6 本【 】,詳情見文末。
🐱AI 工具
你是否想順滑地使用當下最火熱的大模型 ChatGPT-4、Midjourney V6、Dall·E 3、文心一言 4.0 和 Gemini Pro?
想要破除上網魔法?想要降低使用成本?想在同一個平台上使用多個大語言模型?我推薦以下這個好用的工具,它都能滿足:
這個服務剛剛推出,推廣期間優惠價 298,推廣結束將漲價到 498。掃描上方二維碼,即可免費試用,大家覺得效果滿意後,再考慮付費。
🦄文章&教程
1、
這篇文章讓我有種「你不了解的行業內幕」的感覺。小公司還在堅持用 Python 2.7 + Django 1.8,竟支撐每年幾個億的交易額。作者還分享了幾個計畫,我的感受是:也許你不需要考慮太多「xx語言更好」,就選自己熟悉的,專註於業務實作就好。
2、
Python 字串既允許雙引號也允許單引號,甚至可以三引號。這很靈活,但是對於有強迫癥的標準制定者來說,這也是引發沖突的矛盾點。這篇文章分享的故事很有意思,推薦一讀!
3、 介紹 Python 上下文管理器及其語法糖 [3]
為什麽需要用上下文管理器?它能解決哪些問題?文章還介紹了上下文管理器協定、
with
語法糖、使用
contextlib
實作上下文管理器、四個很實用的使用案例。
4、 Python deque 使用教程 [4]
deque
是
collections
模組下的一種雙向佇列數據結構,功能與
list
很相似,適宜需要在兩端快速添加或刪除的場景。這篇教程介紹了它的基本用法與一些高級使用案例。
5、 Python 的泛型函式和泛型類 [5]
Python 在執行時才檢查型別,而且強調的是物件的行為而非型別,因此不怎麽提註重型別安全的「泛型」。但是,Python 也支持泛型,文章介紹了如何用
typing
模組實作泛型函式和泛型類。
6、 Python Gevent 實踐:常見的陷阱 [6]
Gevent
是基於
greenlet
這個輕量級的協程實作的高效能網路庫。文章介紹了 Gevent 的常見陷阱以及解決方案。
7、 Python pickles 的安全問題 [7]
pickle
是 Python 用作序列化的標準庫,但它作反序列化時存在重大的安全風險!文章介紹了它的工作原理、安全風險的根源、機器學習領域合作設計了
safetensors
格式作安全替代。
8、 構建開源去中心化的電子書搜尋引擎 [8]
這篇教程分別使用 JavaScript 和 Python 開發電子書搜尋引擎,依賴
Glitter
(一個使用
Tendermint
構建的去中心化資料庫服務),使用 React 開發展示搜尋結果的頁面。
9、 Python import 跟 Java import 有什麽區別? [9]
很多程式語言都有
import
關鍵字,其作用也類似,但是它們背後的執行機制會有哪些區別呢?文章分析了 Java 和 Python 中 import 的異同點,可加深你對這個話題的理解。
10、 PDM 的內部實作(1) [10]
pdm
是 Python 中極好用的依賴管理工具,是國內開發者@frostming 的作品。作者計劃寫一系列關於它內部實作的文章,這是第一篇,介紹了 Lockfile 是什麽、Lockfile 是如何生成的?
11、 Python 中有指標嗎? [11]
Python 有指標麽?答案取決於你如何理解「指標」。作者簡短回答,卻一針見血。Python 沒有 C 語言經典的指標操作,但 Python 的每個變量都是一個指標,即一切都是隱含的指標。(附: 有個計畫 [12] 「將指標的地獄引入 Python」,跟下方的花括弧版 Python 一樣畫蛇添足)
12、 當 Python 無法執行緒化時:深入了解 GIL 的影響 [13]
無 GIL 特性終於在本周 合入 Python 的主分支了 [14] !分享一篇深度介紹 GIL 的長文,理解 GIL 的工作原理、幫助預測並列性瓶頸的位置,文中使用了很多執行緒時序分析圖,便於理解。
🎁 Python潮流周刊 🎁每 30 期為一季,第一季的精華內容已整理成一篇,方便你隨時檢視。線上存取地址: Python 潮流周刊第一季精華合集(1~30) [15]
🐿️計畫&資源
1、 flet:用 Python 開發即時的 Web、移動端和桌面程式 [16]
無需前端經驗,快速構建跨平台的、支持多使用者、即時的單頁套用(SPA);沒有 SDK,基於 IDE或文字編輯器即可開發,前端使用 Flutter UI,後端目前支持 Python,計劃支持 Go 和 C#。(star 8.7K)(投稿自@bear)
2、 ss-python:Python 計畫樣版,涵蓋整個開發生命周期 [17]
一個包括各種整合、配置和模組的 Python 計畫樣版,特點有:使用
copier
作計畫設定與樣版更新、使用
pdm
管理依賴及虛擬環境、使用 dev container 作容器化、使用 mypy 和 ruff 等等常用技術棧。(投稿自@huxuan_org)
3、 dukpy:用於 Python 簡化版 JavaScript 直譯器 [18]
構建在
duktape
引擎上的 JS 直譯器,用於在 Python 中執行 JS 程式碼。無其它外部依賴,內建了常用的轉譯器(TypeScript、JSX、LESS、CoffeeScript),還支持傳參、執行多個指令碼、全域直譯器、使用
require
載入模組、從 npmjs.org 安裝軟體包等功能。
>>> import dukpy
>>> dukpy.evaljs("var o = {'value': 5}; o['value'] += 3; o")
{'value': 8}
4、 PyKidos:一個 Python 編程練習網站 [19]
線上的 Python 編程網站,很方便透過遊戲方式教育小孩學習編程。
5、 hatchet:分布式的容錯的任務佇列 [20]
取代難以管理的傳統佇列和釋出/訂閱系統,支持故障恢復,可解決並行、公平性和速率限制等問題。具有低延遲和高吞吐量,支持 FIFO、LIFO、迴圈佇列和優先級佇列等策略,可自訂重試策略,支持整合錯誤處理。(star 2.4K)
6、 full-stack-fastapi-template:全棧的現代 Web 計畫樣版 [21]
使用 FastAPI、React、SQLModel、PostgreSQL、Docker、GitHub Actions、自動 HTTPS 等,支持 JWT 身份驗證、基於信件的密碼恢復,使用 Traefik 作反向代理/負載均衡。(star 17.5K)
7、 bython:帶花括弧的 Python [22]
我認為 Python 用空格作縮排是最最迷人的設計!奈何有人更喜歡花括弧。這個計畫為 Python 加上了花括弧,基本範例:
defprint_message(num_of_times) {
foriinrange(num_of_times) {
print("Bython is awesome!");
}
}
if__name__ == "__main__" {
print_message(10);
}
8、 treq:構建在 Twisted 上的 HTTP 請求庫 [23]
一個簡單的、風格類似
requests
的 HTTP 客戶端,構建在 Twisted 之上。
9、 JavSP:匯總多站點數據的視訊後設資料刮削器 [24]
自動抓取、匯總並按指定規則分類整理影片檔,建立供 Emby、Jellyfin、Kodi 等軟體使用的後設資料檔。(star 1.6K)
10、 botasaurus:強大的網路爬蟲框架 [25]
可用簡單的 HTTP 請求存取受 Cloudflare 保護的頁面,是唯一為認證代理提供 SSL 支持的爬蟲框架,僅一行程式碼即可整合任何 Chrome 外掛程式,支持 sitemap、支持數據清理、支持緩存、提供了 Selenium 捷徑,等等。
11、 pywebview:用 JavaScript、HTML 和 CSS 構建 GUI [26]
一個圍繞 WebView 元件的輕量級跨平台包裝器,在 GUI 視窗中顯示 HTML 內容。可與 Web 框架一起使用,也可單獨打通 Python 與 DOM。最新釋出的 5.0 版本,開始支持 Andriod。(star 4.2K)
12、 Paper-Piano:在白紙上彈鋼琴 [27]
它可讓你直接在白紙上練習彈鋼琴!目前最多支持兩個手指,主要為買不起鋼琴的人提供練習。
🐢贈書福利
非週期性的福利活動,本期贈書 6 本【 】,開獎時間 3 月 22 日 。請給 Python貓 公眾號發送數位「 8042 」,獲取抽獎小程式碼。
如果你想要更加熟練地掌握 Python,想要了解實用的編程技巧,想寫出地道、優雅、高效的 Python 程式碼,想要掌握 Python 最新的語言特性,我強烈推薦這本書。
🐼歡迎訂閱
微信公眾號 [29] :除更新周刊外,還釋出其它原創作品,並轉載一些優質文章。(可加好友,可加讀者交流群)
部落格 [30] 及 RSS [31] :我的獨立部落格,上面有歷年原創/轉譯的技術文章,以及從 2009 年以來的一些隨筆。
信件 [32] 及 RSS [33] :在 Substack 上開通的頻道,滿足你透過信件閱讀時事通訊的訴求。
Github [34] :你可以獲取本周刊的 Markdown 原始檔,做任何想做的事!
Telegram [35] :除了釋出周刊的通知外,我將它視為一個「副刊」,補充釋出更加豐富的資訊。
Twitter [36] :我的關註列表裏有大量 Python 相關的開發者與組織的帳號。
參考資料
[1]
投稿:
https://github.com/chinesehuazhou/python-weekly
電報頻道:
https://t.me/pythontrendingweekly
介紹 Python 上下文管理器及其語法糖:
https://bjoernricks.github.io/posts/python/context-manager
Python deque 使用教程:
https://mathspp.com/blog/python-deque-tutorial
Python 的泛型函式和泛型類:
https://guicommits.com/python-generic-type-function- class/
Python Gevent 實踐:常見的陷阱:
https://upsun.com/blog/python-gevent-best-practices/
Python pickles 的安全問題:
https://lwn.net/SubscriberLink/964392/498a12fe44f51139/
構建開源去中心化的電子書搜尋引擎:
https://github.com/j2qk3b/ebook-demo/blob/main/tutorial.md
Python import 跟 Java import 有什麽區別?:
https://juejin.cn/post/7345423755948572726
PDM 的內部實作(1):
https://frostming.com/2024/pdm-lockfile/
Python 中有指標嗎?:
https://nedbatchelder.com/blog/202403/does_python_have_pointers.html
有個計畫:
https://github.com/ZeroIntensity/pointers.py
當 Python 無法執行緒化時:深入了解 GIL 的影響:
https://pythonspeed.com/articles/python-gil/
合入 Python 的主分支了:
https://github.com/python/cpython/pull/116338
Python 潮流周刊第一季精華合集(1~30):
https://pythoncat.top/posts/2023-12-11-weekly
flet:用 Python 開發即時的 Web、移動端和桌面程式:
https://github.com/flet-dev/flet
ss-python:Python 計畫樣版,涵蓋整個開發生命周期:
https://github.com/serious-scaffold/ss-python
dukpy:用於 Python 簡化版 JavaScript 直譯器:
https://github.com/amol-/dukpy
PyKidos:一個 Python 編程練習網站:
https://pykidos.github.io/
hatchet:分布式的容錯的任務佇列:
https://github.com/hatchet-dev/hatchet
full-stack-fastapi-template:全棧的現代 Web 計畫樣版:
https://github.com/tiangolo/full-stack-fastapi-template
bython:帶花括弧的 Python:
https://github.com/mathialo/bython
treq:構建在 Twisted 上的 HTTP 請求庫:
https://github.com/twisted/treq
JavSP:匯總多站點數據的視訊後設資料刮削器:
https://github.com/Yuukiy/JavSP
botasaurus:強大的網路爬蟲框架:
https://github.com/omkarcloud/botasaurus
pywebview:用 JavaScript、HTML 和 CSS 構建 GUI:
https://github.com/r0x0r/pywebview
Paper-Piano:在白紙上彈鋼琴:
https://github.com/Mayuresh1611/Paper-Piano
流暢的Python(第2版):
https://mp.weixin.qq.com/s/eGDOZYZzSpiWojWkN0mK2Q
微信公眾號:
https://img.pythoncat.top/python_cat.jpg
部落格:
https://pythoncat.top
RSS:
https://pythoncat.top/rss.xml
信件:
https://pythoncat.substack.com
RSS:
https://pythoncat.substack.com/feed
Github:
https://github.com/chinesehuazhou/python-weekly
Telegram:
https://t.me/pythontrendingweekly
Twitter:
https://twitter.com/chinesehuazhou
如果你覺得本文有幫助
請慷慨 分享 和 點贊 ,感謝啦 !