Python 潮流周刊#20:三种基准测试的方法、为什么代码在函数中运行得更快?

news2025/1/15 6:39:39

△点击上方“Python猫”关注 ,回复“1”领取电子书

3169ec0d207c099664f0b27e41696fff.jpeg

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。标题取自其中两则分享,不代表全部内容都是该主题,特此声明。

本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。

本周刊开通 Telegram 频道后,已有 650+ 小伙伴加入,欢迎你到来:https://t.me/pythontrendingweekly

🦄文章&教程

1、三种对 Python 作基准测试的方法[1]

文章介绍了使用标准库对 Python 作基准测试的几种方法:time、timeit、cProfile 与 profile,详细介绍了几个工具的使用方法及测试数据的解读。

2、舍弃 Poetry 和 PDM,切换成 Hatch[2]

作者“移情别恋”了 Hatch,开始在项目中使用它。文章介绍了他喜欢 Hatch 的一些小亮点:环境隔离、命令脚本、可替代 Tox、可选的依赖项等。(附:Python 任务自动化工具 tox 教程[3]

3、TOML 文件格式有什么问题?[4]

TOML 是“改进的” INI 文件,是 Python 推荐的配置文件格式。文章提到,连 TOML 的作者也认为它是一种糟糕的格式!文章指出了它的问题:非常冗长、层次结构很难仅从语法推断、像 YAML 一样过于复杂、具有语法类型。

4、用 Python 玩转遗传算法[5]

遗传算法(Genetic Algorithm)是一种受生物进化理论启发的优化算法,用于解决复杂的搜索和优化问题。文章用 Python 演示了这种算法的使用例子。

5、现代 Python 的类型提示:Protocal 类[6]

Protocol 类是 Python 3.8 版本中引入的,用于指定一个类应该实现哪些方法,与 Java 的 Interface 相似。在保持 Python 动态类型用法的情况,使用 Protocal 可以获得部分静态类型检查的效果。

6、tornado 的协程调度原理[7]

Tornado 是一个高性能的 Web 框架,文章解读它的源码,主要想搞清楚:yield 暂存的状态到哪去了、重新恢复执行的“合适的时机”到底是什么、具体是怎么恢复执行的?

7、可视化 CPython 发布过程[8]

文章基于 PEP-101 梳理了 CPython 的发布过程,绘制出了详细的流程图并给出关键步骤的解释。

d9ceff86e14c4156789925a2d184851d.png
CPython构建与发布流程

8、如何用 PyObjC 与 Apple Vision 框架作文本识别[9]

Apple 的 Vision 框架提供了一系列预训练的模型和 API,可快速在应用中添加图像分析和计算机视觉功能。PyObjC 可实现 Python 与 Objective-C 的交互。文章将它们结合,开发了一个文本处理项目。

9、调试 Python 中正则表达式的灾难性回溯[10]

作者使用 py-spy 定位一个 CPU 100% 占用问题,找出了罪魁祸首的正则表达式,进而探讨灾难性回溯及其解决方法,并给出了优化性能的建议写法。

10、使用 Django 和 HTMX 开发一个数据库搜索项目[11]

一篇详细的 Django 项目教程,实现一个全栈的项目。文中有作者的教程视频。

11、异步 SqlAlchemy 和多数据库管理[12]

利用 asyncio 和 SqlAlchemy 库,文章探讨了如何有效地连接和管理多个数据库,获得可扩展且具有弹性的架构。文章介绍了两种实现方法。

12、Python Fire:自动生成命令行接口[13]

Fire 是谷歌开源的一个用于生成 CLI 的库,Github 25K star。这篇文章介绍了它的一般命令、组合命令、链式命令、复杂命令等用法。

13、我最爱的解 LeetCode 问题的 Python 技巧[14]

文章介绍了 Python 中的一些小技巧,从初级到高级,多数与数据结构相关,在解 LeetCode 问题时很有用。

14、为什么 Python 代码在函数中运行得更快?[15]

Python 代码分别在函数和全局模块中运行,哪个更快呢?为什么是在函数中更快呢?Python 代码执行的工作原理是什么?如何测试与优化 Python 函数的性能?

🎁Python潮流周刊🎁已免费发布了 20 期,访问下方链接,即可查看全部内容:https://pythoncat.top/tags/weekly[16]

如果你觉得周刊有价值,请表达小小心意,赞赏一下猫哥吧~~

894d99f476db50118baad5e721669e29.png

🐿️项目&资源

1、hatch:时髦的可扩展的 Python 项目管理库[17]

一个 Python 项目管理工具,有标准化构建系统、强大的环境管理、轻松发布到 PyPI、版本管理、响应式 CLI、比 pipenv 和 poetry 同类工具快约 2-3 倍。(star 4.4K)

2、keep:开源的告警管理和自动化执行平台[18]

可以将所有告警整合到一个管理平台中,并编排工作流以自动化执行端到端的流程。支持对接多种数据采集平台、数据库、办公软件等,可视化编排告警处理工作流。(star 2.2K)

3、PyPI Data 网站:查看 PyPI 的各项数据[19]

一个神奇的网站!包含 PyPI 的各类统计数据、曲线图和饼图,例如文件总数、总大小、一些功能特性的流行趋势等等。

db74d0975ca978104056ed0ae5e86362.png
PyPI数据统计

4、strictyaml:类型安全的 YAML 解析和校验库[20]

用于解析 YAML 的受限子集,拒绝解析丑陋的、难以阅读和不安全的 YAML 特性,有严格的标记验证和直接的类型转换,可替代 pyyaml、ruamel.yaml 和 poyo,有清晰可读的异常信息。(star 1.3K)

5、facefusion:更先进的换脸工具[21]

最新开源的一个人像换脸库,star 涨得飞快!(star 6.9K)

6、pyflyby:一套 Python 的生产力工具[22]

包含一系列的小工具,功能包含用于命令行的 py、用于 IPython 的自动导入、添加缺失的 import、删除不用的 import、格式化 import、打印一组文件的 import、重命名导入,等等。

7、instagraph:将文本内容或 URL 转换为可视化的知识图谱[23]

可以提取复杂信息中的实体,生成它们的关系图谱。使用了 GPT-3.5,以及 Flask 来生成色彩友好的图例;响应式设计,可在任何设备上使用。

8、textual-web:在浏览器中运行 TUI 和终端[24]

Textual 开发的 app 发布到网页上,也可以在浏览器中使用命令行终端。是个很有意思的项目。

9、ziggy-pydust:用 Zig 语言构建 Python 扩展[25]

一个开发框架,可打包用 Zig 编写的 Python 扩展模块,还包含一个 Pytest 插件可发现与运行 Zig 测试。集成了 Poetry,方便构建 wheel 和发布。支持缓冲区协议,可以实现零拷贝提升 Numpy 计算。

10、MFTCoder:多任务微调代码大模型[26]

一个开源的多任务代码大语言模型项目,包含代码大模型的模型、数据、训练等。在 HumanEval Benchmarks 的 Python Pass@1 取得了 74.4% 的开源 SOTA 成绩,超过 GPT-4。

🐱赞助&支持

如果你喜欢周刊,请分享给其他需要的同学,让更多人可以从中受益~

如果你觉得周刊有价值,请随意赞赏[27] 或 买杯咖啡[28] 进行支持!

如果你想帮助周刊办得更好,欢迎向我们投稿或提出建议:投稿/建议通道[29]

如果你是品牌方或广告主,欢迎私信我,洽谈赞助与合作事项。

🐼欢迎订阅

  • 微信公众号[30]:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)

  • 博客[31] 及 RSS[32]:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。

  • Github[33]:你可以获取本周刊的 Markdown 源文件,做任何想做的事!

  • 邮件[34]:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。

  • Telegram[35]:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。

  • Twitter[36]:我的关注列表里有大量 Python 相关的开发者与组织的账号。

参考资料

[1]

三种对 Python 作基准测试的方法: https://superfastpython.com/benchmark-python-code/

[2]

舍弃 Poetry 和 PDM,切换成 Hatch: https://andrich.me/2023/08/switching-to-hatch/

[3]

Python 任务自动化工具 tox 教程: https://pythoncat.top/posts/2020-01-06-tox

[4]

TOML 文件格式有什么问题?: https://hitchdev.com/strictyaml/why-not/toml/

[5]

用 Python 玩转遗传算法: https://joseprupi.github.io/misc/2023/08/19/playing_with_genetic_algorithms_in_python.html

[6]

现代 Python 的类型提示:Protocal 类: https://codebeez.nl/blogs/type-hinting-in-modern-python-the-protocol-class/

[7]

tornado 的协程调度原理: https://dev.to/caipi/tornado-de-xie-cheng-diao-du-yuan-li-2h34

[8]

可视化 CPython 发布过程: https://sethmlarson.dev/security-developer-in-residence-weekly-report-9

[9]

如何用 PyObjC 与 Apple Vision 框架作文本识别: https://yasoob.me/posts/how-to-use-vision-framework-via-pyobjc/

[10]

调试 Python 中正则表达式的灾难性回溯: https://krishnanchandra.com/posts/regex-catastrophic-backtracking/

[11]

使用 Django 和 HTMX 开发一个数据库搜索项目: https://www.photondesigner.com/articles/database-search-django-htmx

[12]

异步 SqlAlchemy 和多数据库管理: https://python-bloggers.com/2023/09/asynchronous-sqlalchemy-and-multiple-databases/

[13]

Python Fire:自动生成命令行接口: https://juejin.cn/post/7278246015193464847

[14]

我最爱的解 LeetCode 问题的 Python 技巧: https://www.jjinux.com/2022/08/python-my-favorite-python-tricks-for.html

[15]

为什么 Python 代码在函数中运行得更快?: https://stackabuse.com/why-does-python-code-run-faster-in-a-function/

[16]

https://pythoncat.top/tags/weekly: https://pythoncat.top/tags/weekly

[17]

hatch:时髦的可扩展的 Python 项目管理库: https://github.com/pypa/hatch

[18]

keep:开源的告警管理和自动化执行平台: https://github.com/keephq/keep

[19]

PyPI Data 网站:查看 PyPI 的各项数据: https://py-code.org/stats

[20]

strictyaml:类型安全的 YAML 解析和校验库: https://github.com/crdoconnor/strictyaml

[21]

facefusion:更先进的换脸工具: https://github.com/facefusion/facefusion

[22]

pyflyby:一套 Python 的生产力工具: https://github.com/deshaw/pyflyby

[23]

instagraph:将文本内容或 URL 转换为可视化的知识图谱: https://github.com/yoheinakajima/instagraph

[24]

textual-web:在浏览器中运行 TUI 和终端: https://github.com/Textualize/textual-web

[25]

ziggy-pydust:用 Zig 语言构建 Python 扩展: https://github.com/fulcrum-so/ziggy-pydust

[26]

MFTCoder:多任务微调代码大模型: https://github.com/codefuse-ai/MFTCoder

[27]

赞赏: https://img.pythoncat.top/wechat_code.png

[28]

买杯咖啡: https://www.buymeacoffee.com/pythoncat

[29]

投稿/建议通道: https://github.com/chinesehuazhou/python-weekly/issues/new

[30]

微信公众号: https://img.pythoncat.top/python_cat.jpg

[31]

博客: https://pythoncat.top

[32]

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

[33]

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

[34]

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

[35]

Telegram: https://t.me/pythontrendingweekly

[36]

Twitter: https://twitter.com/chinesehuazhou

1100210790a3bb6fd4b6e54526e5452c.gif

如果你觉得本文有帮助

请慷慨分享点赞,感谢啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1016629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt】Qt中关联容器QMap,QMultiMap,QHash,QMultiHash 的理解

在Qt中,有几种关联容器可供选择: QMap:QMap是一个关联容器,存储键-值对,并根据键自动进行排序。它提供了快速的查找和插入操作,适用于需要根据键进行排序和搜索的场景。 QMultiMap:QMultiMap是…

软件测评中:电子政务系统怎么测评?

1、文件依据: 1)《中华人民共和国政府采购法实施条例》(中华人民共和国国务院令 第658号) 第四十一条“大型或者复杂的政府采购项目,应当邀请国家认可的质量检测机构参加验收工作。” 2) 《国务院办公厅关于印发国家政务信息化…

深入Android系统基础知识及基本概念

深入Android系统基础知识及基本概念 Android应用程序的基本组成部分,包括Activities(活动)、Services(服务)、Broadcast receivers(广播接收器)和Content providers(内容提供者&…

Mysql---第八篇

系列文章目录 文章目录 系列文章目录一、mysql执行计划怎么看一、mysql执行计划怎么看 执行计划就是sql的执行查询的顺序,以及如何使用索引查询,返回的结果集的行数 EXPLAIN SELECT * from A where X=? and Y=? 1。id :是一个有顺序的编号,是查询的顺序号,有几个 sel…

ModbusTCP服务端

1在Device下,添加设备net: 公交车。 2在net下添加 ModbusTCP

技术人员如何提升商业敏感度?

在商业领域,最基本也是最实用的财务知识,就是看懂三张报表。简单地说,现金流量表,决定企业能不能活下来;资产负债表和利润表,决定企业活得好不好。下面分别来学习这三张报表。 资产负债表 资产负债表&#…

浅谈一下前端字符编码

背景 众所周知,计算机只能识别二进制,它是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用二进制数的0和1表示。但是现实中存在着其他的字符:数字、字母、中文、特殊符号…

如何实现Web应用、网站状态的监控?

如何实现Web应用、网站状态的监控? 关键词:网站监控,服务器监控,页面性能监控,用户体验监控本文通过代码分析、网站应用介绍网站状态监控的方式下文主要分为网站应用、技术实现两部分 一、网站应用 现在网络上已经存在一些Web网站监控的服务&#xff…

Vue ——08、路由嵌套,参数传递及重定向

路由嵌套,参数传递及重定向 一、路由嵌套二、参数传递第一种方式:第二种方式: 三、重定向————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶ ̄),谢…

【C++杂货铺】继承由浅入深详细总结

文章目录 一、继承的概念及定义1.1 继承的概念1.2 继承定义1.2.1 定义格式1.2.2 继承方式和访问限定符1.2.3 继承基类成员访问方式的变化 二、基类和派生类对象赋值转换三、继承中的作用域四、派生类中的默认成员函数4.1 默认构造函数4.2 拷贝构造函数4.3 赋值运算符重载函数4.…

03使用Spring基于XML的方式注册第一个组件

基于XML的方式注册第一个组件 开发步骤 第一步: 创建Maven工程配置生成的pom.xml文件, 添加spring context基础依赖和junit依赖(注意根据Spring官方文档描述,Spring6需要JDK版本17) 当添加Spring的基础依赖spring context之后,Maven会自动关联并引入其他依赖spring aop, spr…

前端生态系统:构建现代Web应用的完整指南

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 前端开发生态系统是一个…

Selenium常见问题解析

1、元素定位失败: 在使用Selenium自动化测试时,最常见的问题之一是无法正确地定位元素,这可能导致后续操作失败。解决方法包括使用不同的定位方式(如xpath、CSS selector、id等),等待页面加载完全后再进行…

[NLP] LLM---<训练中文LLama2(二)>扩充LLama2词表构建中文tokenization

使用SentencePiece的除了从0开始训练大模型的土豪和大公司外,大部分应该都是使用其为当前开源的大模型扩充词表,比如为LLama扩充通用中文词表(通用中文词表,或者 垂直领域词表)。 LLaMA 原生tokenizer词表中仅包含少量…

asp.net+sqlserver医院体检信息管理系统

一、源码描述 这是一款简洁十分美观的ASP.NETsqlserver源码,界面十分美观,功能也比较全面,比较适合 作为毕业设计、课程设计、使用,感兴趣的朋友可以下载看看哦 二、功能介绍 该源码功能十分的全面,具体介绍如下&…

PyTorch深度学习实战——基于ResNet模型实现猫狗分类

PyTorch深度学习实战——基于ResNet模型实现猫狗分类 0. 前言1. ResNet 架构2. 基于预训练 ResNet 模型实现猫狗分类相关链接 0. 前言 从 VGG11 到 VGG19,不同之处仅在于网络层数,一般来说,神经网络越深,它的准确率就越高。但并非…

Linux学习第12天:基于API函数的字符设备驱动开发:一字一符总见情

本节学习的内容主要为基于LinuxAPI函数的字符设备驱动的开发,还包括在驱动模块加载的时候如何自动创建设备节点。总结的脑图如下: 一、驱动原理 1.分配和释放设备号 申请设备号函数: int alloc_chrdev_region(dev_t *dev, unsigned basemin…

改进YOLOv5小目标检测:构建多尺度骨干和特征增强模块,提升小目标检测

构建多尺度骨干和特征增强模块,提升小目标检测 背景代码使用配置文件如下🔥🔥🔥 提升小目标检测,创新提升 🔥🔥🔥 测试在小目标数据集进行提点 👉👉👉: 新设计的创新想法,包含详细的代码和说明,具备有效的创新组合 🐤🐤🐤 1. 本文包含两个创新改…

SQL优化--count优化

select count(*) from tb_user ;在之前的测试中,我们发现,如果数据量很大,在执行count操作时,是非常耗时的。 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个 数,效率很…

档案管理系统设计与实现

摘 要 近年来,随着企业彼此间的竞争日趋激烈,信息技术在企业的发展中占据着越来越重要的地位。在企业的运输生产中,档案已成为企业运输经营中不可或缺的一部分,为管理者进行管理决策和进行各种经营活动提供了重要的依据&#xf…