主頁 > 後端開發 > Python潮流周刊#7:我討厭用 asyncio

Python潮流周刊#7:我討厭用 asyncio

2023-06-18 07:32:25 後端開發

你好,我是貓哥,這里記錄每周值得分享的 Python 及通用技術內容,部分為英文,已在小標題注明,(標題取自其中一則分享,不代表全部內容都是該主題,特此宣告,)

首發于我的博客:https://pythoncat.top/posts/2023-06-17-weekly7

??文章&教程

1、AsyncIO (英)

文章的作者討厭 asyncio 庫,認為使用 asyncawait 的設計十分糟糕,它與大多數庫不兼容,也不滿足“Python之禪”的一些標準,作者的推薦方案是 gevent,提及了它的幾點好處,另外,作者還推薦了兩篇相關的文章:Flask 作者 Armin Ronacher 的《I don't understand Python's Asyncio》,SQLAlchemy 作者 Mike Bayer 的《Asynchronous Python and Databases》

2、gevent 到底是什么? (英)

gevent 是一個基于協程的協作式多任務 Python 框架,使用猴子補丁來協調所有代碼,這篇文章是一個系列的第一篇,介紹了 gevent 的基本實作原理,第二篇是《Gevent Correctness》,第三篇是《Gevent Performance》

3、ReactPy 的入門教程 (英)

上期周刊推薦過的 ReactPy 最近很火,它支持用 Python 寫 React 風格的前端應用,這里是一篇簡單的入門教程,另外,建議感興趣的同學去看官方檔案,

reactpy 的 hello world 程式

4、Python 業務框架回圈依賴和全域背景關系的一些思考

如何簡單而優雅地解決 Python 的回圈依賴問題呢?作者考察了主流 API 框架(Django、Flask、FastAPI)的背景關系管理方案,然后介紹了自己框架采用的方案:借鑒了 Ray 社區中物件所有權的概念,在一個協程上實作一個簡易的所有權字典,

5、Python 函式呼叫的實際依賴關系跟蹤 (英)

跟蹤 Python 函式呼叫時訪問的代碼和資料是一種很有用的操作,比如繪制依賴圖、除錯和分析性能、快取失效,這篇文章考察了一種可能的實作方式,包含了一個少于 100 行代碼的最小可行實作,作者是 MIT 的計算機科學博士,

6、Python 3.x從基礎到實戰 - typing型別提示

這是一篇入門教程,通過簡短的示例,介紹了 Python Typing 模塊的基礎用法和進階用法,

7、wxPython 入門教程 (英)

wxPython 是跨平臺的圖形用戶界面框架,基于 wxWidgets 庫開發,在 1998 年發布,它最新發展到了 4.x 版本,這篇文章基于最新的特性作了詳細的入門介紹,

wxPython 的 hello world 程式

8、Python 裝飾器的用法指導

一篇很認真的文章,介紹了裝飾器的基本概念和進階用法,在示例部分介紹了 Django 的幾個很常用的裝飾器(@login_required@permission_required@csrf_exempt@cache_page),

9、在行程間共享 Numpy 陣列的 7 種方式 (英)

多行程編程時最麻煩的事情之一就是共享資料,這篇文章介紹了 7 種共享 Numpy 陣列的方式:傳遞引數、使用全域變數、使用佇列 Queue、使用管道 Pipe、使用基于 ctypes 的 RawArray、使用 Python 3.8 的 SharedMemory、使用多行程的管理器,這是一篇系統性的長文,里面還參考了作者的一些相關文章,十分推薦閱讀,

10、在 Python 中作時間序列分析的工具 (英)

時間序列資料(Time-Series Data)是指在不同時間點上收集的資料,這篇文章介紹了在 Python 中分析時間序列資料的工具,包括常用的 NumPy、pandas 和 Matplotlib,以及 Tsfresh、Sktime、AutoTS、Prophet、Timescale 等,

11、如何快速處理缺失的資料 (英)

在資料分析和機器學習領域,需要盡量確保資料集的完整性和準確性,因此處理缺失值是必不可少的環節,文章先介紹了資料缺失的原因和模式(完全隨機丟失 、隨機丟失和不隨機丟失),然后介紹了處理缺失值的常用方法:洗掉、填充、插補,

12、Cython 與 CPython:對比性能差異 (英)

這篇文章用 10 個不同的基準作性能比較,涵蓋了多種場景及邊緣情況,包括斐波那契數列、斐波那契數列(迭代)、矩陣乘法、質數生成、字串拼接、計算均值、計算均值(未優化)、算術運算、檔案操作、線性搜索、冒泡排序,猜猜最后的結論是什么呢?

13、使用 FastAPI 進行流式處理 (英)

服務器推送事件 (Server-Sent Events) 是一種基于 HTTP 的單向通信協議,允許服務器向客戶端實時推送資料,這篇文章解釋了如何使用 FastAPI 實作流式處理 JSON 事件,文章出自“FastAPI Pro 系列”,另外兩篇文章關于如何使用動態配置、如何加密保護 API,

SSE 示意圖

14、20 道關于 FastAPI 中間件的面試題 (英)

中間件(middleware)是 FastAPI 中的一種機制,允許在 HTTP 請求和回應到達路由處理程式之前攔截和修改它們,文章包含 20 個與中間件、身份驗證和授權相關的面試題,

15、CPython 添加回傳常量指令 (英)

上期周刊引發了“國內 Python 貢獻者數量”的話題,@yihong0618 在推特上留言分享了 @penguin-wwy 給 CPython 提交的這個貢獻,該作者發現 LOADCONST + RETURNVALUE 高頻出現在 pystats 檔案中,因此提交了一個新的 RETURN_CONST 指令,此項貢獻在 Python 3.12 基準測驗中獲得約 10% 的性能提升,

??Python潮流周刊??已免費發布了 7 期,掃描下方二維碼,即可查看全部內容:

???專案&資源

1、argcomplete:命令列自動補全庫 (英)

在使用 Python 命令或者命令列工具時,一個痛點是沒有補全,使用 argcomplete 后,按 tab 鍵就可以自動補全,它需要與 argparse 模塊一起使用,目前支持 bash 和 zsh 兩種 shell,

2、Lawyer LLaMA:中文法律 LLaMA

這是一個系統性學習了中國的法律知識體系的大語言模型,能夠正確理解民法、刑法、行政法、訴訟法等常見領域的法律概念,可進行基礎的法律咨詢,涵蓋婚姻、借貸、海商、刑事等,

3、CPM-Bee:百億引數的中英文雙語基座大模型

這是一個完全開源、允許商用的百億引數中英文基座模型,采用 Transformer 自回歸架構,在超萬億(trillion)高質量語料上進行預訓練,在中文的 Zero-CLUE 評測基準上,它大幅超越其他模型,位列中文大模型第一,

4、TigerBot:多語言多任務 LLM

也是國內團隊開源的大語言模型,根據 OpenAI InstructGPT 論文在公開 NLP 資料集上的自動評測,TigerBot-7B 達到 OpenAI 同樣大小模型的綜合表現的 96%,

5、BingAI-Client:突破限制的 New Bing

New Bing 集成了 ChatGPT,但是在國內使用的門檻有點高!這個專案的客戶端基于 Angular,服務端基于 FastAPI 和 EdgeGPT,在本地部署好后,運行服務端程式即可開始使用客戶端,(另外推薦一個專案 go-proxy-bingai,是用 Vue3 和 Go 搭建的 New Bing 演示站點,國內可用,無需登錄即可暢聊)

6、tabby:可自托管的 AI 編碼助手 (英)

這是 GitHub Copilot 的開源/本地替代品,無需 DBMS 或云服務,擁有 Web UI,支持消費級的 GPU,

tabby的效果演示

7、pyboke:極簡博客生成器

一個功能極簡、代碼極簡、自帶四種主題、支持生成 RSS 的靜態博客生成器,專案基于 Python 3.10,主要使用的庫有 arrow、click、jinja2、mistune 等,

8、gpt-engineer (英)

這是一個基于 ChatGPT4 的 AI 工程師,你只用告訴它需求,然后它會問幾個問題,接著生成整個專案代碼,提供出來的演示視頻非常驚艷!

gpt-engineer的效果演示

9、audiocraft:音頻處理和生成庫 (英)

這是 FaceBook 開源的一個 PyTorch 庫,有最先進的 EnCodec 音頻壓縮器/分詞器,內含文本到音樂模型 MusicGen,使用了 10K 高質量音樂曲目的內部資料集,以及 ShutterStock 和Pond5 的音樂資料,

10、PythonGUI 教程網站 (英)

Python 中有很多開發 GUI 的庫,除了前文提到的 wxPython,還有 Tkinter、PyQt、PySide、Kivy 等等,這個網站上提供了很多 GUI 相關的學習資料,

11、CPython 實作原理

這是一本用 GitBook 制作的在線電子書,翻譯自微軟獨立研究員 Anthony Shaw 的《CPython Internals》,

??播客&視頻

1、pybites:定期重構的重要性 (英)

這期播客聊了關于重構的相關話題,

2、三個看似一樣的串列,占用記憶體空間竟然不一樣多?

有三個看起來完全一樣的串列:[0]*3、[0,0,0]、[0 for _ in range(3)],但是使用 sys.getsizeof() 計算的記憶體卻完全不同,這是為什么呢?這期 B 站視頻通過分析位元組碼和 CPython 解釋器原始碼,非常硬核地分析出了根本原因,值得一看!

3、asyncio的理解與入門,搞不明白協程?看這個視頻就夠了

這里呼應一下本期標題及第一則內容,asyncio 依然是最主流的異步編程庫,近幾年也在逐漸發展成熟,很有必要深入學習,這是一則 B 站視頻,適合用于入門與加深理解,

??福利活動

不定期的福利活動,本期贈書 5 本《Excel 應用大全》,開獎時間 6 月 22 日(端午節),請給 Python貓公眾號發送數字“8007”,獲取抽獎資格,

這本書由 Excel Home 團隊策劃,由多位微軟 MVP 通力打造,全面系統地介紹了 Excel 365 & Excel 2021 的技術特點和應用方法,配合大量典型實用的案例,既可以作為初學者的入門指南,也可作為中高級用戶的參考手冊,

??關于周刊

Python 潮流周刊,由豌豆花下貓主理,精心篩選國內外的 250+ 資訊源,為你挑選最值得分享的文章、教程、開源專案、軟體工具、播客和視頻、熱門話題等內容,愿景:幫助所有讀者精進 Python 技術,并增長職業和副業的收入,

內容創作要花費大量的時間和精力,如果你覺得有幫助,請隨意贊賞、買杯咖啡或在愛發電進行支持!如果你喜歡本周刊,請轉發分享給其他需要的同學,讓更多人可以從中受益~

訂閱方式:Python貓 (可加群)| RSS | 郵件 | Github | Telegram | Twitter

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/555434.html

標籤:Python

上一篇:Django學習筆記

下一篇:返回列表

標籤雲
其他(161178) Python(38238) JavaScript(25504) Java(18245) C(15237) 區塊鏈(8271) C#(7972) AI(7469) 爪哇(7425) MySQL(7256) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4601) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2436) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) HtmlCss(1968) 功能(1967) Web開發(1951) C++(1941) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Python潮流周刊#7:我討厭用 asyncio

    你好,我是貓哥。這里記錄每周值得分享的 Python 及通用技術內容,部分為英文,已在小標題注明。(標題取自其中一則分享,不代表全部內容都是該主題,特此宣告。) 首發于我的博客:[https://pythoncat.top/posts/2023-06-17-weekly7](https://pyth ......

    uj5u.com 2023-06-18 07:32:25 more
  • Django學習筆記

    ## 1.常用命令 `創建專案:django-admin startproject 專案名` `創建APP(進入工程目錄):python manage.py startapp 網站名` `創建庫表(進入工程目錄):python manage.py makemigrations` `執行庫表建立(進入 ......

    uj5u.com 2023-06-18 07:32:06 more
  • 09. centos使用docker方式安裝mysql

    ## 一、創建宿主機物理路徑 新建/mydata/mysql/data、log和conf三個檔案夾 ```bash mkdir -p /mnt/mysql/log mkdir -p /mnt/mysql/data mkdir -p /mnt/mysql/config ``` 或者 ```bash m ......

    uj5u.com 2023-06-18 07:31:43 more
  • Java 注釋及Dos命令

    # Java 注釋、絕對路徑、相對路徑、基本Dos命令 # 1. Java的三種注釋方式 ## 注釋能增加代碼的可讀性,習慣寫注釋能提升我們撰寫代碼的能力 > ### 單行注釋:用//注釋一些代碼提示 > > ### 多行注釋:以/*為開頭 以 */為結束 > > ### 檔案注釋:/* > > # ......

    uj5u.com 2023-06-18 07:30:01 more
  • Nginx 學習筆記

    ## 概述 Nginx 是一個高性能的 HTTP 和反向代理服務器,特點是占用記憶體少,并發能力強 #### 1. 正向代理 如果把局域網外的 Internet 想象成一個巨大的資源庫,則局域網中的客戶端要訪問 Internet,需要通過代理服務器來訪問,這種訪問就稱為正向代理 ![](https:/ ......

    uj5u.com 2023-06-18 07:24:46 more
  • C++面試八股文:什么是左值,什么是右值?

    某日二師兄參加XXX科技公司的C++工程師開發崗位第16面: > 面試官:什么是左值,什么是右值? > > 二師兄:簡單來說,左值就是可以使用`&`符號取地址的值,而右值一般不可以使用`&`符號取地址。 ```c++ int a = 42; //a是左值,可以&a int* p = &a; int* ......

    uj5u.com 2023-06-17 07:27:40 more
  • 01. 組建知識星球服務體系

    ## 一、初衷: 因為想要進行各種技術點的訓練和學習,開發中需要使用各種各樣的開源技術框架,苦于沒有基礎服務支撐,所以想要建立一個專門的服務支撐系統,每年購買的云服務器配置底下,安裝一個Jenkins都跑不起來,所以自己購買了一個物理主機,記憶體加裝到`32G`,搭建自己的私人技術知識星球。 搭建一套 ......

    uj5u.com 2023-06-17 07:27:36 more
  • [ARM 匯編]進階篇—存盤訪問指令—2.3.3 堆疊操作指令

    堆疊是一種特殊的資料結構,其特點是后進先出(LIFO,Last In First Out)。在 ARM 匯編中,堆疊通常用于保存函式呼叫時的暫存器狀態、區域變數和回傳地址等。本節將詳細介紹 ARM 匯編中的堆疊操作指令,并通過實體幫助你更好地理解和掌握這些指令。 1. 推入堆疊(PUSH) PUSH 指令用 ......

    uj5u.com 2023-06-17 07:27:30 more
  • Scala方法和函式

    - 方法和函式的作用幾乎是一樣的,但是函式在使用的程序中更加靈活和多樣化 - scala中函式是頭等公民 . 可以作為方法的回傳值和引數使用 - scala是一個集面向物件和面向函式于一身的編程語言 , 靈活的函式是函式式編程的一種體現 - 函式的使用使代碼更加簡潔和靈活 # 函式 scala中一種 ......

    uj5u.com 2023-06-17 07:27:26 more
  • lua中 . 和 : 的區別

    > 最近專案中使用到了 lua,因為之前沒怎么接觸過,特此記錄下自己在學習程序中疑惑的地方。 在使用`lua` 進行編碼的程序中,我們經常會使用到`.`和`:`,但是對于剛開始接觸`lua`的我來說,對這兩者的使用還是感到時常感到疑惑,接下來我們一起看看幾個例子,來感受兩者的區別。如果發現文中錯誤的 ......

    uj5u.com 2023-06-17 07:27:22 more