當前位置: 妍妍網 > 碼農

Python 潮流周刊#42:小公司用 Python 開發,能做到什麽程度?

2024-03-16碼農

請給「 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

    [2]

    電報頻道: https://t.me/pythontrendingweekly

    [3]

    介紹 Python 上下文管理器及其語法糖: https://bjoernricks.github.io/posts/python/context-manager

    [4]

    Python deque 使用教程: https://mathspp.com/blog/python-deque-tutorial

    [5]

    Python 的泛型函式和泛型類: https://guicommits.com/python-generic-type-function- class/

    [6]

    Python Gevent 實踐:常見的陷阱: https://upsun.com/blog/python-gevent-best-practices/

    [7]

    Python pickles 的安全問題: https://lwn.net/SubscriberLink/964392/498a12fe44f51139/

    [8]

    構建開源去中心化的電子書搜尋引擎: https://github.com/j2qk3b/ebook-demo/blob/main/tutorial.md

    [9]

    Python import 跟 Java import 有什麽區別?: https://juejin.cn/post/7345423755948572726

    [10]

    PDM 的內部實作(1): https://frostming.com/2024/pdm-lockfile/

    [11]

    Python 中有指標嗎?: https://nedbatchelder.com/blog/202403/does_python_have_pointers.html

    [12]

    有個計畫: https://github.com/ZeroIntensity/pointers.py

    [13]

    當 Python 無法執行緒化時:深入了解 GIL 的影響: https://pythonspeed.com/articles/python-gil/

    [14]

    合入 Python 的主分支了: https://github.com/python/cpython/pull/116338

    [15]

    Python 潮流周刊第一季精華合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly

    [16]

    flet:用 Python 開發即時的 Web、移動端和桌面程式: https://github.com/flet-dev/flet

    [17]

    ss-python:Python 計畫樣版,涵蓋整個開發生命周期: https://github.com/serious-scaffold/ss-python

    [18]

    dukpy:用於 Python 簡化版 JavaScript 直譯器: https://github.com/amol-/dukpy

    [19]

    PyKidos:一個 Python 編程練習網站: https://pykidos.github.io/

    [20]

    hatchet:分布式的容錯的任務佇列: https://github.com/hatchet-dev/hatchet

    [21]

    full-stack-fastapi-template:全棧的現代 Web 計畫樣版: https://github.com/tiangolo/full-stack-fastapi-template

    [22]

    bython:帶花括弧的 Python: https://github.com/mathialo/bython

    [23]

    treq:構建在 Twisted 上的 HTTP 請求庫: https://github.com/twisted/treq

    [24]

    JavSP:匯總多站點數據的視訊後設資料刮削器: https://github.com/Yuukiy/JavSP

    [25]

    botasaurus:強大的網路爬蟲框架: https://github.com/omkarcloud/botasaurus

    [26]

    pywebview:用 JavaScript、HTML 和 CSS 構建 GUI: https://github.com/r0x0r/pywebview

    [27]

    Paper-Piano:在白紙上彈鋼琴: https://github.com/Mayuresh1611/Paper-Piano

    [28]

    流暢的Python(第2版): https://mp.weixin.qq.com/s/eGDOZYZzSpiWojWkN0mK2Q

    [29]

    微信公眾號: https://img.pythoncat.top/python_cat.jpg

    [30]

    部落格: https://pythoncat.top

    [31]

    RSS: https://pythoncat.top/rss.xml

    [32]

    信件: https://pythoncat.substack.com

    [33]

    RSS: https://pythoncat.substack.com/feed

    [34]

    Github: https://github.com/chinesehuazhou/python-weekly

    [35]

    Telegram: https://t.me/pythontrendingweekly

    [36]

    Twitter: https://twitter.com/chinesehuazhou

    如果你覺得本文有幫助

    請慷慨 分享 點贊 ,感謝啦