Python 潮流周刊#27:应该如何处理程序的错误?
你好,我是貓哥。這里每周分享優(yōu)質(zhì)的 Python、AI 及通用技術(shù)內(nèi)容,大部分為英文。本周刊開源,歡迎投稿。另有電報頻道作為副刊,補充發(fā)布更加豐富的資訊。
??產(chǎn)品推薦
Walles.AI 是一款適用于所有網(wǎng)站的瀏覽器插件,支持 GPT4 問答、ChatPDF、網(wǎng)頁內(nèi)容解釋及翻譯、生成高質(zhì)量文章、與 Notion 等工具協(xié)同、在線摘要 Youtube 視頻等。前往官網(wǎng)體驗:安裝地址
??文章&教程
1、將 Python 錯誤作為值:比較 Go 和 Rust 的使用模式
文章比較了兩種處理錯誤的方法:拋出錯誤和將錯誤作為返回值,并參照 Go 和 Rust 的處理模式,介紹如何在 Python 中實現(xiàn)將錯誤作為值返回。(附1:兩種風(fēng)格的錯誤處理 分析了兩種風(fēng)格的優(yōu)缺點及其適用場景;附2:周刊第一期的 編程語言的四種錯誤處理方法 從語法、代碼可讀性、演變過程、運行效率角度對比了不同方案)
2、調(diào)試 Django 中的 CSRF 失敗/403 禁止錯誤
部署 Django 程序時的一個常見錯誤是 403 Forbidden ,通常由 CSRF 錯誤導(dǎo)致,文章介紹了導(dǎo)致這種錯誤的 7 種原因,并解讀 Django 源碼,詳細梳理了它們的校驗邏輯。
3、對 Python 環(huán)境和包管理工具的公正分析
Python 中的虛擬環(huán)境和包管理工具實在是太多了!但是應(yīng)該如何選擇最適合自己需求的工具呢?作者全面分析了 5 個類別的 10 多款工具,希望減少用戶在抉擇上的困惑。(附:作者針對此主題的兩場演講 PyCon DE 2023 和 EuroPython 2023)
4、讓我們一起創(chuàng)建一個 Python 調(diào)試器
你是否好奇一個代碼調(diào)試器是如何工作的?當(dāng)設(shè)置斷點后,程序觸發(fā)它時會發(fā)生什么?調(diào)試器是程序員日常必備工具之一,但極少有人知道它是如何實現(xiàn)的。這是一個系列教程,已更新 5 篇文章。值得一提的是,作者使用了最新的 Python 3.12 PEP-669 功能。
5、揭開 Python 3.12 的面紗:Python 世界有哪些新東西?
Python 3.12 已發(fā)布一個半月,你開始嘗鮮了么?這篇內(nèi)容全面的文章重點解讀了新的幾個 PEP,讓你對這個版本有更清晰的認識。
6、Python 的哈希表指南
Python 的字典是一種“哈希表”,提供了高效靈活的數(shù)據(jù)存儲和檢索方法。文章介紹了這種數(shù)據(jù)結(jié)構(gòu)及其工作原理,探討了如何用 Python 實現(xiàn)哈希表并解決哈希沖突。這是一個系列文章,作者還寫了堆、隊列、棧、數(shù)組等數(shù)據(jù)結(jié)構(gòu)的指南。
7、運行不可信的 Python 代碼
作者想自己實現(xiàn)一個簡化版的不太安全的沙盒,文章介紹了它的運作方式,以及一些關(guān)鍵性問題的解決方案,即獨立的進程 + seccomp + setrlimit 。(附:如何安全運行別人上傳的Python代碼? 這篇文章的方案是使用 Docker 的 Python SDK 來構(gòu)建鏡像,在 Docker 中執(zhí)行代碼)
8、了解 Linux cp 命令并用 Python 編程實現(xiàn)
深入探討了 Linux 中 cp 命令的工作原理,然后用 Python 實現(xiàn)了一個基礎(chǔ)版本。從中可以看到高級編程語言提供的強大功能和簡單性。
9、初學(xué)者應(yīng)該用 Django,而不是 Flask
作者認為 Flask 雖然簡單易用,但它可能會讓初學(xué)者忽視 Web 開發(fā)的復(fù)雜性。Django 功能全面、生態(tài)系統(tǒng)成熟,更適合新手學(xué)習(xí)與提升生產(chǎn)力。
10、PEP-733:對 Python 公共 C API 的評估
一則信息型的 PEP,用于分享 C API 的信息,包括定義 C API 的用途、利益相關(guān)者及其使用場景和要求、C API 的優(yōu)勢、C API 的 9 項薄弱的問題。
11、讓我們做一個類 JSON 語法的解析器
作者出于編程樂趣的目的,定義了一組類似 JSON 的語法規(guī)則,然后使用 Python 逐一實現(xiàn)不同內(nèi)容的提取與解析,開發(fā)了一個解析器。
12、一門編程語言應(yīng)該有多大?
在作者眼中,Python 1.5 是他能完全理解的最后一個版本,而之后的版本則使得語言越來越大。語言設(shè)計時添加新功能,如何權(quán)衡取舍?作者建議學(xué)習(xí) C 語言的例子,讓語言處于“最小進化”模式。
??PyCon China 2023??今年國內(nèi) PyCon 將于 12 月在北京、上海、成都、杭州、重慶、深圳、廣州聯(lián)動舉辦。現(xiàn)在購票可享 7 折優(yōu)惠:詳情介紹
???項目&資源
1、CogVLM:多模態(tài)預(yù)訓(xùn)練模型
一個強大的開源可視化語言模型 (VLM),CogVLM-17B 有 100 億個視覺參數(shù)和 70 億個語言參數(shù),具有高性能,在多項跨模態(tài)基準(zhǔn)測試中排名領(lǐng)先。(star 2.1K)
2、movis:用于生成與編輯視頻的庫
讓你通過 Python 代碼生成各類視頻,包括但不限于演示視頻、動態(tài)圖形、著色器藝術(shù)編碼和游戲解說視頻。支持視頻編輯、音頻剪輯、圖層轉(zhuǎn)換及添加特效等。
3、mirror:基于攝像頭內(nèi)容,實時回答問題
這是一個 Web APP,可將攝像頭視頻流傳給 AI,讓它分析內(nèi)容并實時回答你提出的問題。100% 本地和私有,Web UI 是用 gradio 構(gòu)建,多模態(tài) AI 模型是 Bakllava 。
4、vimGPT:使用 GPT-4V 和 Vimium 瀏覽網(wǎng)頁
Vimium 是一個 Chrome 插件,可讓你僅用鍵盤瀏覽網(wǎng)頁,借助它,可以不將瀏覽器 DOM 傳給大模型,僅用 GPT-4V 的視覺功能來瀏覽網(wǎng)頁。(star 1.8K)
5、twitter_user_tweet_crawler:無需調(diào)用 Twitter API,爬取用戶推文
使用 selenium 模擬瀏覽器操作,可抓取用戶推文并保存靜態(tài)資源到本地,無需調(diào)用 Twitter API。(投稿自@kaixinol)
6、RSS-OPML-to-Markdown:將 OPML 文件轉(zhuǎn)化為易讀的 Markdown 格式
經(jīng)常有人分享自己 RSS 列表導(dǎo)出的 OPML 文件,但這難以閱讀也不宜直接拿去導(dǎo)入自己的閱讀器。這個項目將 RSS 源的概要和一些統(tǒng)計信息輸出成 markdown 表格,方便你按需訂閱。(投稿自@AboutRSS)
7、MyHeyGen:視頻翻譯工具
一個平民版視頻翻譯工具,音頻翻譯、翻譯校正、視頻唇紋合成全流程解決方案。
8、awesome-python-repo-stats:統(tǒng)計“awesome-python”列表中項目的信息
awesome-python 是一個擁有 187K star 超火爆的項目,收錄了大量框架、庫、軟件和資源。這個項目是對它收錄內(nèi)容的統(tǒng)計分析,每日更新,可在線查看統(tǒng)計表。
9、outlines:引導(dǎo)式文本生成
一個用于生成神經(jīng)文本的庫,可視為 transformers 庫中 generate 方法的替代品。(star 3.3K)
10、marimo:下一代 Python notebook
全新的 notebook 項目,其每個 notebook 都可作為交互式 Web 程序共享,可瀏覽數(shù)據(jù)、運行實驗、構(gòu)建工具和部署應(yīng)用。
11、Finance:150+ 量化金融 Python 程序
一個資源集合項目,幫助你收集、操縱和分析股市數(shù)據(jù)。(star 1.2K)
12、tacticalrmm:一個遠程監(jiān)控和管理工具
一個遠程監(jiān)控和管理工具,使用 Django、Vue 和 Go 構(gòu)建。類似 Teamviewer 的遠程桌面控制、遠程文件傳輸、遠程執(zhí)行命令和腳本、查看日志、告警管理、支持自動化。(star 2.3K)
??播客&視頻
1、CPython 的 JIT 編譯器
Guido 本周在 X 上分享了這則視頻,視頻作者介紹了他們規(guī)劃給 Python 3.13 開發(fā)一個 JIT 編譯器!(附:演講視頻的文稿)
2、The Python Show 第 21 期:Sanic - 異步 Web 框架
Sanic 是支持異步編程的 Python Web 框架,能夠快速構(gòu)建和運行。這期播客的嘉賓是 Sanic 的維護者之一,話題包括 Web 框架對比、消息規(guī)范、Mayim(單向 ORM)。
本文首發(fā)于:https://pythoncat.top/posts/2023-11-18-weekly
??歡迎訂閱
- 微信公眾號:除更新周刊外,還發(fā)布其它原創(chuàng)作品,并轉(zhuǎn)載一些優(yōu)質(zhì)文章。(可加好友,可加讀者交流群)
- 博客 及 RSS:我的獨立博客,上面有歷年原創(chuàng)/翻譯的技術(shù)文章,以及從 2009 年以來的一些隨筆。
- Github:你可以獲取本周刊的 Markdown 源文件,做任何想做的事!
- 郵件:在 Substack 上開通的頻道,滿足你通過郵件閱讀時事通訊的訴求。
- Telegram:除了發(fā)布周刊的通知外,我將它視為一個“副刊”,補充發(fā)布更加豐富的資訊。
- Twitter:我的關(guān)注列表里有大量 Python 相關(guān)的開發(fā)者與組織的賬號。
總結(jié)
以上是生活随笔為你收集整理的Python 潮流周刊#27:应该如何处理程序的错误?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序动态生成表单来啦!你再也不需要
- 下一篇: 大白话说Python+Flask入门(二