关于python:Python-潮流周刊16优雅重要么如何写出-Pythonic-的代码

45次阅读

共计 4570 个字符,预计需要花费 12 分钟才能阅读完成。

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

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

微信 | 博客 | 邮件 | Github | Telegram | Twitter

为了不便读者获取原始内容,我已将周刊的 Markdown 文件归档在 Github,请通过以下链接获取:https://github.com/chinesehuazhou/python-weekly

🦄文章 & 教程

1、写代码时,优雅有意义吗?

作者强调应用 Python 的外围个性来编写习用的、富裕变现力的、优雅的代码很重要,提出优雅不是可有可无的奢侈品。

2、Python Asyncio 实际 – 高并发下如何避免缓存击穿

文章介绍了如何基于 Asyncio.Future 的个性编写一个语言级别的防缓存击穿的工具——Share,并介绍它的应用和高并发下的解决办法。

3、高效定时工作解决:深刻学习 Python 中 APScheduler 库的神秘

APScheduler 是一个弱小的定时工作解决库,这篇长文具体介绍了从入门到精通的相干常识,包含创立定时工作、定时工作触发器、工作存储、并发执行、阻塞和非阻塞调度器、错误处理、立刻执行工作、调度器长久化、工作监听器和移除定时工作等。

4、CPython 开发实战:魔改 lambda 函数

文章尝试将 Python 的 lambda 函数改成 Javascript 格调的箭头函数。在编译 CPython 时,通过批改 .asdl 文件,从新结构形象语法树,批改语法分析文件,并利用 pegen 从新生成语法分析器。

5、CPython 是如何实现援用计数的?

你是否对 CPython 的底层运行原理及其内部结构感到好奇?文章通过剖析源码,介绍了 CPython 是如何实现援用计数和内存治理的,波及援用计数的机制、要害数据结构的解释、字节码指令的执行、援用计数的局限性等。

6、应用 Importlib 实现 Python 提早加载

提早加载指的是在应用时再导入模块,而不是在程序刚执行时就加载。它的益处:缩小启动工夫、升高内存耗费、进步性能、优化资源、运行时加载。文章介绍了importlib 实现提早加载的用法。。

7、应用 Python 和 Playwright 进行端到端测试

端到端测试(end-to-end)指的是对程序的整个应用流程从头到尾作测试,可能发现单元测试与集成测试都无奈发现的问题。这是一篇具体的入门教程,介绍了 Playwright 的相干用法。

8、nogil 我的项目和 Faster CPython 我的项目

Python 官网虽已发表会承受 PEP-703,然而最终版本或者要等到 5 年后的 3.17 版本。从 2021 年起,nogil 和 Faster CPython 我的项目继续吸引大家的关注,这篇文章梳理了它们两年来的倒退状况、一些关键性问题的解决计划和重要停顿、近期社区和大公司的回应等。(附:Python 官网第一次针对 nogil 的研讨会、Faster CPython 我的项目的首次亮相)

9、简略介绍 Python 的永生对象

Instagram 向 Python 奉献了 3.12 版本中的 PEP-683(永生对象,应用固定的援用计数),它能够绕过援用计数查看,这是多核 Python 并行处理的重要根底。文章介绍了 Instagram 遇到的内存应用问题、为解决问题而引入永生对象、并最终奉献到 CPython 的故事。

10、为什么要防止在 Python 中用“import *”?

Python 中一个文件是一个模块,领有本人的命名空间。当应用“import *”时,这会导致“命名空间净化”!文章指出了遵循 PEP-8 格调的正确写法,同时倡议应该用__all__ 来定义模块中可被导出的变量名。

11、让咱们终结 Python 的依赖天堂

pixi 是最新公布的用 Rust 编写的 Python 包管理器,这篇文章出自其官网博客,次要介绍为什么要开发这个我的项目、它提供了哪些性能、它的根本执行过程。我的项目以后基于 Conda 生态,暂不反对 PyPI。

12、应用 Django Rest Framework 实现 JWT 身份验证

一篇十分具体的教程,介绍了 JWT 是什么以及它的工作原理,演示了如何用 DRF 实现 JWT 身份验证的全过程。

13、加强 Django 程序:晋升数据库查问的 7 个妙招

数据库查问是影响 Web 程序性能的次要因素之一,这篇文章介绍了 7 个晋升性能的技巧:设置查问语句的超时工夫、应用assertNumQueries 测试查问数、应用nplusone 捕捉 N+1 查问、应用django-zen-queries 捕捉 N+1 查问、防止对预取对象作新的查问、应用 defer() 避免获取大的未应用字段、防止在大字段上应用 distinct()

14、可能让你大吃一惊的奇怪的 Python“个性”

有时候咱们会在编程语言中看到一些奇怪的景象,它们可能是一些十分冷门的“个性”,也可能会让人误以为是 bug 或者因了解谬误而造成 bug。作者介绍了他的几个小发现。

15、可汗学院如何将 Python 后端重写成 Go?

可汗学院应用 Python 做了 10 年的主力语言,然而在 2020 年前后彻底转向了 Go 营垒。这篇文章介绍了它为什么以及如何将 Python 2 后端整体重形成 Go 服务。文中援用了可汗学院总结性的一系列博客,可作延长浏览。

16、为什么动态语言会面临复杂性的挑战?

这是一篇思考编程语言该如何设计的长文!作者指出古代编程语言存在“动态 - 动静双形性”问题,提出现实的编程语言应该同时具备动态和动静的个性。文章剖析了 IdrisZig 两种语言的做法,并指出其局限性,最初提出应该从新思考编程语言。

🎁Python 潮流周刊🎁已收费公布了 16 期,拜访下方链接,即可查看全部内容:https://pythoncat.top/tags/weekly

原文:https://pythoncat.top/posts/2023-08-19-weekly

🐿️我的项目 & 资源

1、pixi:Rust 开发的基于 Conda 的包管理器

一个基于 Conda 生态的包管理器,反对所有操作系统,反对多种语言的 Conda 包,领有相似 Cargo 的命令行界面,齐全用 Rust 编写。反对依照我的项目来安装包,也反对全局装置,此行为相似于 pipxcondax

2、briefcase:将 Python 我的项目转换为独立的利用

反对打包成 Mac、Windows、Linux、Android 和 iPhone 的利用,以及应用了 PyScript 作客户端的动态 Web 站点。(star 2K)

3、facechain:可生成数字分身的深度学习工具链

上周的热门我的项目,仅需三张照片即可生成集体的数字分身。底层应用了 Stable Diffusion 的文生图性能,训练时可抉择多种格调的 LoRA 模型,也反对增加个性化的 prompt,实现变装成果。(star 3.2K)

4、modelscope:将 Model-as-a-Service 概念变为事实

“模型即服务”(MaaS)会集 AI 社区中最先进的机器学习模型,并简化在理论利用中应用 AI 模型的流程。它已有 700+ 模型,涵盖自然语言解决、计算机视觉、语音、多模态等。(star 3.6K)

5、viberary:基于语义的书籍搜索引擎

不是依据体裁和书名等惯例条件,而是依据提醒语来搜寻相干的书籍。基于双塔语义检索模型,应用 DuckDB 在本地训练数据,应用 Redis Search 模块作检索,通过 Flask API 和 Bootstrap 前端展现后果。

6、polar:帮忙开源维护者取得更好的赞助

它为开源维护者搭建一个平台,可便捷地设置、经营、推广面向支持者的增值及订阅服务,帮忙开发者从开源我的项目中获取支出。这个我的项目已取得 180 万美元的种子轮投资。

7、youre-the-os:一个游戏,让你表演操作系统!

一个很有意思的游戏!你须要表演操作系统,治理过程、内存和 I/O 事件,不能让过程闲暇太久,不然就 game over!我的项目依赖 Python 3.11 和 pipenv,也能够上这个网站在线体验。(star 1K)

8、learndb-py:通过从头实现数据库来学习

这个我的项目从头实现一个关系型数据库,借鉴了 sqlite 数据库。要害的个性:反对丰盛的 sql、应用lark 构建自定义词法分析与解析器、反对用户和代理形式连贯、实现 BTree 作数据存储。

9、mpire:比规范库更快的多过程开发库

比其它多过程库更快,且性能更多:联合了 multiprocessing.Pool 应用写时复制的共享对象的长处、有丰盛的状态治理性能、应用 tqdm 实现进度条、反对在仪表板查看进度,等等。(star 1.5K)

10、diaphora:二进制文件的差别比对工具

如何比对一个软件在两个版本间的差别?比拟二进制软件的差别时,波及哪些匹配技术?这个我的项目号称是目前最强的软件差别比对工具!(star 3.1K)

11、beartype:近实时的动态类型查看工具

一个近实时(NRT)的纯 Python 运行时类型查看工具,将 Rust 和 C++ 的零老本对象带入动静类型的 Python 世界。它可有选择性地将 Python 的鸭子类型转换成动态类型,同时默认保留前者的长处。我的项目文档中称“你能够同时像鸭子一样嘎嘎叫,以及像熊一样怒吼”!(star 2K)

12、cs_books:AzatAI 举荐的计算机科学书籍

这个仓库收录了 200 多本计算机科学类书籍,仅限教育用处!

🐢播客 & 视频

1、超过 PEP-8 — 丑陋易懂代码的最佳实际

这个视频出自 PyCon 2015,介绍如何写出优雅的 Python 代码。在油管上已有 8200+ 点赞。演讲者 Raymond Hettinger 参加奉献了大家熟知的很多 Python 个性,比方 enumerate() 函数、生成器表达式、OrderedDict()、条件表达式、set 对象等。

2、只需 5 个步骤,将“勉强能用”的代码变成 Pythonic

写出能用的代码不应该成为最终目标,这只是一个开始!这个视频应用了 \_\_getitem\_\_、\_\_len\_\_、\_\_enter\_\_ 和 \_\_exit\_\_ 等魔术办法,将难以保护的代码重构得 Pythonic。作者自称这是对上一则分享的 8 分钟稀释版。

🐱资助 & 反对

如果你感觉周刊有价值,请随便赞叹 或 买杯咖啡 进行反对!

如果你喜爱周刊,请分享给其余须要的同学,让更多人能够从中受害~

🐼欢送订阅

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

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

– Github:你能够获取本周刊的 Markdown 源文件,做任何想做的事!

– 邮件:在 Substack 上开明的频道,满足你通过邮件浏览时事通信的诉求。

– Telegram:除了公布周刊的告诉外,我将它视为一个“副刊”,补充公布更加丰盛的资讯。

– Twitter:我的关注列表里有大量 Python 相干的开发者与组织的账号。

正文完
 0