Python潮流周刊#8:Python 3.13 计划将解释器提速 50%!
你好,我是猫哥。这里每周分享优质的 Python 及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)
首发于我的博客:https://pythoncat.top/posts/2023-06-24-weekly
文章&教程
Faster CPython 项目(即香农计划)有了关于 3.13 版本的最新计划,这次的性能目标是减少解释器 50% 的耗时。涵盖三项主要工作:第 2 层的优化器、启用子解释器(PEP-554)、内存管理。
Numpy 是作科学计算和数据分析的最重要的库之一,并行性是提升其性能的重要手段。文章介绍了 5 种可以实现 Numpy 并行性的场景和方法:加载/保存 Numpy 数组数据、高效地计算数学函数、高效地初始化数组、并行执行数组的元素级数学运算、在进程间高效共享 Numpy 数组数据。
文章针对一个有性能问题的 Python 库,使用 Rust 重写并作了三轮优化后,提升了性能 100 倍。文中使用了 py-spy 库绘制火焰图,分析出了代码的瓶颈点,并以此作为优化的依据,可以看到前后火焰图的差别很大。
文章指出“一步到位的移植”方式存在一些问题,从而提出“迭代式移植”的方法,并给出了一个代码示例。
如何设计出一个 Pythonic 的 API?在设计上有什么方法和基本原则呢?文章从代码结构、变量命名、错误处理、版本控制、类型注解等方面,给出了非常详细的介绍。文章较长,最后总结出 18 条 takeaways。
- 编译类型化的 Python (英)
Python 已支持类型提示,那能否编译 Python 代码为本地代码以提升性能呢?虽然类型提示可以提供一些性能优化,但由于 Python 的动态特性和灵活性,使得静态分析和编译非常困难。因此目前还没有一种方法可以将 Python 代码编译成本地代码以提高性能。
- pytest 的夹具很神奇! (英)
夹具(fixture)是在测试前设置和准备必要数据的一种机制,可以将测试数据和测试代码分离。文章介绍了 pytest 中夹具的基本用法,以及与 Django 项目的结合使用。
这是一个系列文章,支持用可视化的调试方式探析 Python字典的实现原理。这篇文章介绍了如何通过哈希表实现字典,以及如何解决哈希冲突。
Python 最主流的两个 Web 框架是 Flask 和 Django,文章深入比较了它们的主要功能、优势与缺点、流行的插件和使用场景等,让读者更方便做出自己的选择。
文章的要点是:介绍一个基本的 Python 打包流程,尽可能减少依赖和要求,并解决大多数用户的打包问题。文中列出了一些常见的打包问题,并提供了一些解决方案,同时指出了一些常见的打包工具(如 homebrew、pyenv、anaconda、poetry)的缺点。
文章介绍了在 PyScript/Pyodide 中使用 async/await/asyncio
来编写并发代码,还介绍了 Pyodide.Webloop 的实现,该实现允许 async/await 与浏览器事件循环一起使用。
- 线程的问题及其解决方案 (英)
上期周刊第一则分享中的三篇文章偏向于支持隐式的 async,有读者建议再呈现一些支持显式 async 的观点。这篇文章的要点是:线程会使本地推理变得困难,而本地推理是软件开发中最重要的事情之一。因此,应该避免使用线程,而使用异步编程模型,如回调、promise、协程等。同时,文章还提到了使用隐式协程的风险,因为它们可能会导致与线程相同的问题。(@Plutonium 投稿)
Python潮流周刊已免费发布了 8 期,访问下方链接,即可查看全部内容:https://pythoncat.top/tags/weekly
️项目&资源
目前开源且美观实用的 PyQt/PySide 组件库很少,所以作者照着 WinUI3 的设计稿写了这个 Fluent Design 风格的组件库,支持亮暗主题无缝切换和自定义主题色,支持 PyQt5/PyQt6/PySide2/PySide6 ,搭配 QtDesigner 可以快速设计出美观的界面。(来自@shokokawaii)
PyVibe是一个用于创建网页的 Python 库,让 Python 开发者快速构建前端页面,简化 UI 开发。PyVibe 返回一个 HTML 字符串,可用于静态页面、Flask 函数、Pyodide 动态客户端呈现。
Pynecone 发布于 2022 年 12 月,已获得 9K 星星,可谓十分火爆。它是一个用于构建和部署 Web 程序的全栈框架,提供了 50+ 内置组件,支持创建复杂的布局和使用 CSS 的全部功能来设置样式。
这个项目包含了一些短小却很有挑战性的项目代码,既有“Advent of Code”历年的年度编程挑战活动的题目,也有“The Riddler”的系列数学谜题,还有文字谜题、概率问题等,甚至有使用 Python 解任何的数独题、实现一个 lisp 解释器,等等。
Recognize Anything Model 是一种图像标记模型,可以高精度地识别任何常见类别;Tag2Text 是一种以标签为指导的视觉语言模型,可以支持字幕、检索和标签。这个项目是这两个模型的代码实现。
支持使用自然语言同时与多个 PDF 文件进行对话。项目使用了 streamlit,可在浏览器中显示用户界面。
DeepKE 是用于知识图谱构建的知识提取工具包,支持 cnSchema、低资源、文档级和多模态场景的实体、关系和属性提取。三个主要功能:命名实体识别、关系提取、属性提取。项目提供了详细的文档、教程和在线演示。
一个“awesome”系列仓库,收录了关于 DevOps 的方方面面的内容,包含各种平台、自动化、CI/CD、代码管理、网络服务器、数据库、监控工具、网关、混沌工程,等等。
讨论&问题
一则热门讨论,话题关于 Python 3.13 版本的开发计划。不出意外,大部分的留言都围绕着 GIL,赞成与反对声皆有。
这也是一则 HN 上的帖子,既引起了关于编程语言本身的讨论,也涉及不同编程语言生态中的一些优秀的项目。有趣的是,有三则关于 Python 的留言都推荐了我们在上文中分享的pytudes
项目!
关于周刊
Python 潮流周刊,由豌豆花下猫主理,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。
内容创作要花费大量的时间和精力,如果你觉得有帮助,请随意赞赏、买杯咖啡或在爱发电进行支持!如果你喜欢本周刊,请转发分享给其他需要的同学,让更多人可以从中受益~
订阅方式:Python猫 (可加群)| RSS | 邮件 | Github | Telegram | Twitter
Python潮流周刊#8:Python 3.13 计划将解释器提速 50%!的更多相关文章
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- Python【每日一问】13
问:请简述一下python的GIL 答:GIL 锁,全局解释器锁,仅在CPython解释器中,作用就是,限制多线程同时执行,保证同一时间内只有一个线程在执行.
- Python面试题之Python面试题汇总
在这篇文章中: Python基础篇 1:为什么学习Python 2:通过什么途径学习Python 3:谈谈对Python和其他语言的区别 Python的优势: 4:简述解释型和编译型编程语言 5:Py ...
- Python天天美味(15) - Python正则表达式操作指南(re使用)(转)
http://www.cnblogs.com/coderzh/archive/2008/05/06/1185755.html 简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格 ...
- Python之路,Day4 - Python基础4 (new版)
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- Python 第二篇:python字符串、列表和字典的基本操作方法
本文基于python 3.5.1 python常见的数据类型有字串.列表.元组.字典等,本文将详细介绍每一种数据类型的操作方法. 一:str字串的操作方法: 1.capitalize()--> ...
- Python学习笔记——基础篇【第二周】——解释器、字符串、列表、字典、主文件判断、对象
目录 1.Python介绍 2.Python编码 3.接受执行传参 4.基本数据类型常用方法 5.Python主文件判断 6.一切事物都是对象 7. int内部功能介绍 8.float和long内 ...
- Python笔记·第一章—— Python基础(一)
一.Python的简介 1.Python的由来与版本 1.1 python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文 ...
- python学习第三讲,python基础语法之注释,算数运算符,变量.
目录 python学习第三讲,python基础语法之注释,算数运算符,变量. 一丶python中的基础语法,注释,算数运算符,变量 1.python中的注释 2.python中的运算符. 3.pyth ...
随机推荐
- easy-excel读取远程地址获得文件进行上传
背景 作为一个快五年的程序员,一直以来还没有自己维护过自己的技术栈,最近也是有时间,所以也是下定决心,从头开始,一步一步的夯基础.最近在系统化的学习easy-excel,今天遇到了一个问题,特意记录一 ...
- Redis集群介绍及测试思路
作者:京东零售 李磊 Redis集群介绍 Redis集群一般有四种方式,分别为:主从复制.哨兵模式.Cluster以及各大厂的集群方案.在3.0版本之前只支持单实例模式,3.0之后支持了集群方式.在3 ...
- Redis key命名规范
Redis key命名规范 一.实现目标 简洁,高效,可维护 二.键值设计规约 1 Redis key 命名风格 [推荐]Redis key 命名需具有可读性以及可管理性,不该使用含义不清的 key ...
- 全网最详细中英文ChatGPT-GPT-4示例文档-人工智能助手从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)
目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...
- zookeeper重启,线上微服务全部掉线,怎么回事?
注册中心zookeeper被重启,线上微服务全部掉线,怎么回事?! 最近因为一次错误的运维操作,导致线上注册中心zk被重启.而zk重启后发现所有线上微服务开始不断掉线,造成了持续30分钟的P0故障. ...
- win10 双开微信 微信双开
方法1:鼠标连续点击实现Windows微信双开在桌面上找到微信图标,鼠标左键连续点击2次为打开一个微信,连续点击8次就打开了4个微信. 注意:不要连续点开太多防止卡顿. 方法2:回车键双击微信图标实现 ...
- vue中粘贴板clipboard的使用方法
一.npm安装clipboard npm install clipboard --save 二.页面结构 <span id="copyTarget">{{targetC ...
- 2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如何写? +---------+ | class | +-----
2023-01-03:超过5名学生的课.编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序.请问sql语句如何写? ±--------+ | class | ±--------+ ...
- 2020-09-18:LRU手撸,说下时间复杂度和空间复杂度。
福哥答案2020-09-18: 方法:哈希表 + 双向链表.时间复杂度:对于 put 和 get 都是 O(1).空间复杂度:O(capacity),因为哈希表和双向链表最多存储 capacity+1 ...
- 2021-10-26:给定一个数组arr,arr[i] = j,表示第i号试题的难度为j。给定一个非负数M。想出一张卷子,对于任何相邻的两道题目,前一题的难度不能超过后一题的难度+M。返回所有可能的卷
2021-10-26:给定一个数组arr,arr[i] = j,表示第i号试题的难度为j.给定一个非负数M.想出一张卷子,对于任何相邻的两道题目,前一题的难度不能超过后一题的难度+M.返回所有可能的卷 ...