深入理解asyncio(二)

在上篇文章已经看到多次用asyncio.gather了,还有另外一个用法是`asyncio.wait`,他们都可以让多个协程并发执行。那为什么提供2个方法呢?他们有什么区别,适用场景是怎么样的呢?其实我之前也是有点困惑,直到我读了asyncio的源码。我们先看2个协程的例子:

阅读全文 〉

深入理解asyncio(一)

这几天看asyncio相关的pycon视频又重温了asyncio 的官方文档,收获很多。之前asyncio被吐槽的一点就是文档写的不好,Python 3.7 时 asyncio 的官方文档被 Andrew Svetlov 以及 Yury Selivanov 等核心开发者重写了,新的版本我觉得已经好很多了。在这里记录一下我对asyncio的一些理解。

阅读全文 〉

PEP572: 海象运算符

现在已经是Python 3.8的最后一个alpha版本,接着就是本月底要发布的的3.8.0 beta 1了。按规定,3.8已经不会再添加(修改)功能了,之前非常有争议的PEP 572的实现已经算是很固定了,我们这篇文章就来先尝个鲜。看看这个新的`赋值表达式`语法怎么用,何时用。

阅读全文 〉

神奇的 f-strings

Python 3.6新增了f-strings,这个特性叫做`字面量格式化字符串`,F字符串是开头有一个f的字符串文字,Python会计算其中的用大括号包起来的表达式,并将计算后的值替换进去。通过本文,希望和你达成一个共识:如果你的项目或者工作中使用的Python版本已经不小于3.6,f-string格式化是首选方式,不仅在保持功能强大的同时语义上更容易理解,而且性能也有较大的提升

阅读全文 〉

2018年度Python榜单

2018 年马上就要结束了,让我们一起见证全世界 Python 的这一年。今年的榜单功能和去年相差不大,如果你看过去年榜单能够体会几个小改动,太忙了,也许明年能改版一下。榜单内容和去年有了一些区...

阅读全文 〉

from __future__ import annotations

最近做了一些豆瓣的产品业务代码的 Python 3 迁移相关的准备工作。首先当然是要去改那些基础 Model,除了代码符合 Python3 语法要求,这种基础的、核心的代码也要加上类型注解,结果...

阅读全文 〉

消失的结石

先申明这不是一篇技术文章,只是用叙事的方式讲述我这 2 个礼拜由于结石住院的始末。结石是一种很常见的泌尿系统疾病,我认识的不少人都有过结石,我的感觉里面程序员或者说互联网从业者会更容易得这个病,...

阅读全文 〉

Python 3.7 中的 PEP 562

按照 Python3.7 的发布时间表,明天 Python 3.7.0 就发布了,最近各大开源项目都在做 3.7 相关的调整,之后我还会写文章更详细的介绍 Python 3.7 都带来了什么,敬...

阅读全文 〉

attrs 和 Python3.7 的 dataclasses

一直想写一篇介绍 attrs 的文章,但是最近几个月忙于做 爱湃森课程 实在抽不出空来做,最近感觉找到节奏了,还是稳步向前走了,这个周末就硬挤了一下午写写,要不感觉对不起订阅专栏的同学们。在国内...

阅读全文 〉

2017年度Python榜单

一起见证全世界 Python 的这一年非常抱歉这个榜单到现在才发出来,主要有 2 个原因:1. 本来准备起用http://ipython.io这个域名;2. 域名备案时间长,造成后续事情都等;3...

阅读全文 〉