Python 列表解析式竟然支持异步?

2021-08-11
阅读 3 分钟
1.4k
PEP原文:[链接]PEP标题:PEP 530 -- Asynchronous ComprehensionsPEP作者:Yury Selivanov创建日期:2016-09-03合入版本:3.6译者:豌豆花下猫@Python猫PEP翻译计划:[链接]摘要PEP-492 和 PEP-525 通过 async/await 语法,引入了对原生协程和异步生成器的支持。本 pep 提议给列表、集合、字典解析式和生成器表达式添加...

Python 数值中的下划线是怎么回事?

2021-08-01
阅读 4 分钟
1.1k
花下猫语:Python 中下划线的用法令人叹为观止,相信你已在各种文章或教程中见识过了。在 2016 年的 3.6 版本之后,Python 还引入了一种新的语法,使得下划线也可以出现在数值中。这篇翻译的文档,将带你重温这个特性的引入过程。

Python 的上下文管理器是怎么设计的?

2021-07-14
阅读 17 分钟
826
花下猫语:最近,我在看 Python 3.10 版本的更新内容时,发现有一个关于上下文管理器的小更新,然后,突然发现上下文管理器的设计 PEP 竟然还没人翻译过!于是,我断断续续花了两周时间,终于把这篇 PEP 翻译出来了。如果你不了解什么是 PEP,可以先查看这篇《学习Python,怎能不懂点PEP呢?》,如果你也对翻译 PEP 感兴...
封面图

为什么 Python 没有函数重载?如何用装饰器实现函数重载?

2021-06-27
阅读 8 分钟
1.1k
英文:[链接]作者:arprit译者:豌豆花下猫(“Python猫”公众号作者)声明:本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。函数重载指的是有多个同名的函数,但是它们的签名或实现却不同。当调用一个重载函数 fn 时,程序会检验传递给函数的实参/形参,并据此而调用相应的实现...

Python 之父爆料:明年至少令 Python 提速 1 倍!

2021-05-16
阅读 2 分钟
1.2k
大概在半年前,我偶然看到一篇文章,有人提出了给 Python 提速 5 倍的计划,并在寻找经费赞助。当时并没有在意,此后也没有看到这方面的消息。
封面图

为什么 Python 的 f-string 可以连接字符串与数字?

2021-02-19
阅读 3 分钟
3.1k
本文出自“Python为什么”系列,归档在 Github 上:[链接]毫无疑问,Python 是一门强类型语言。强类型语言。强类型语言!(关于强弱类型话题,推荐阅读这篇 技术科普文)这就意味着,不同类型的对象通常需要先做显式地类型转化, 然后才能进行某些操作。下面以字符串和数字为例,看看强行操作会产生什么结果: {代码...} ...

深入 Python 解释器源码,我终于搞明白了字符串驻留的原理!

2021-02-15
阅读 7 分钟
1.9k
英文:[链接]作者:arpit译者:豌豆花下猫(“Python猫”公众号作者)声明:本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。每种编程语言为了表现出色,并且实现卓越的性能,都需要有大量编译器级与解释器级的优化。由于字符串是任何编程语言中不可或缺的一个部分,因此,如果有...
封面图

Python优化机制:常量折叠

2021-02-12
阅读 3 分钟
1.6k
英文:[链接]作者:arprit译者:豌豆花下猫(“Python猫”公众号作者)声明:本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。每种编程语言为了表现出色,并且实现卓越的性能,都需要大量编译器级的优化。一种著名的优化技术是“常量折叠”(Constant Folding):在编译期间,编译器...

2020年Python文章盘点,我选出了个人TOP10

2021-01-01
阅读 4 分钟
1.8k
1、公众号订阅数破 20000 啦! 就在 2020 年结束前的两天,Python猫的订阅数终于迈上了新的台阶。从 2018 年国庆到现在,我们共花了 26 个月。

脑洞:如何用一个整数来表示一个列表?

2020-12-22
阅读 7 分钟
1k
原题 | Storing a list in an int ([链接]作者 | Computer Wit译者 | 豌豆花下猫(“Python猫”公众号作者)声明 | 本翻译已得到原作者授权。为便于阅读,内容略有改动。概要与 C、Rust 和 Go 不同,Python 默认的int 具有任意大小。[[注1]]([链接] 、[[注2] ]([链接] 这意味着,一个整数可以存储无限大的值,只要内存足够...

Python最会变魔术的魔术方法,我觉得是它!

2020-12-14
阅读 4 分钟
1.2k
在上篇文章中,我有一个核心的发现:Python 内置类型的特殊方法(含魔术方法与其它方法)由 C 语言独立实现,在 Python 层面不存在调用关系。

为什么继承 Python 内置类型会出问题?!

2020-11-15
阅读 6 分钟
1.2k
但是,《流畅的Python》一书值得反复回看,可以温故知新。最近我偶然翻到书中一个有点诡异的知识点,因此准备来聊一聊这个话题——子类化内置类型可能会出问题?!

如果只推荐一本 Python 书,我要 Pick 它!

2020-10-22
阅读 3 分钟
1.5k
如果要票选最佳的 Python 进阶类书目,这本书肯定会是得票率最高的书籍之一。我在最早写“Python猫荐书系列”时,就想推荐它,但又觉得好东西应该留到最后,所以一直拖到了现在……

为什么说 Python 内置函数并不是万能的?

2020-10-18
阅读 3 分钟
875
在分析为什么 list() 会更慢的时候,文中说到它需要经过名称查找与函数调用两个步骤,那么,这就引出了一个新的问题:list() 不是内置类型么,为什么它不能直接就调用创建列表的逻辑呢?也就是说,为什么解释器必须经过名称查找,才能“认识”到该做什么呢?

Python 疑难问题:[] 与 list() 哪个快?为什么快?快多少呢?

2020-10-14
阅读 2 分钟
1.1k
本文出自“Python为什么”系列,请查看全部文章在日常使用 Python 时,我们经常需要创建一个列表,相信大家都很熟练了吧? {代码...} 上面的两种写法,你经常使用哪一个呢?是否思考过它们的区别呢?让我们开门见山,直接抛出本文的问题吧:两种创建列表的 [] 与 list() 写法,哪一个更快呢,为什么它会更快呢?注:为了简...

Python 为什么不支持 switch 语句?

2020-10-08
阅读 6 分钟
1.2k
主要是因为 switch 在其它语言中太常见了,而 Python 却不支持,这样的独特性本身就值得关注,而回答这个问题,也能更加看清 Python 在程序设计上的理念,了解 Python 在语法设计中的决策过程。

耗时两年,我终于出了一本电子书!

2020-10-06
阅读 2 分钟
1.4k
2018 年国庆节前,我开通了微信公众号“Python猫”,写下了“喵星来客”系列的第一篇文章。2020 年国庆节前,我累计创作和翻译了 130+ Python 技术文章。时光匆匆,两年光阴很快就过去了。在这个特殊的时间节点上,我感觉有必要把创作的内容做一下梳理,于是,也就诞生出了这一本自制的电子书——《优雅的Python》。 看得出来...

Python 之父为什么嫌弃 lambda 匿名函数?

2020-09-20
阅读 4 分钟
1.9k
Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" expression ,也就是 lambda 参数序列:表达式。

详解增强算术赋值:“-=”操作是怎么实现的?

2020-09-10
阅读 4 分钟
1.4k
花下猫语: 本篇译文仍是 Brett 大佬的“Python语法糖”系列,他在演示“-=”操作的实现时,竟发现 CPython 的一个 bug,顺手就修复了,这才是大佬……

详解 Python 的二元算术运算,为什么说减法只是语法糖?

2020-09-09
阅读 8 分钟
1k
原题 | Unravelling binary arithmetic operations in Python作者 | Brett Cannon译者 | 豌豆花下猫(“Python猫”公众号作者)声明 | 本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。大家对我解读属性访问的博客文章反应热烈,这启发了我再写一篇关于 Python 有多少语法实际上只...

Python 中的数字到底是什么?

2020-09-05
阅读 11 分钟
1.2k
花下猫语:在 Python 中,不同类型的数字可以直接做算术运算,并不需要作显式的类型转换。但是,它的“隐式类型转换”可能跟其它语言不同,因为 Python 中的数字是一种特殊的对象,派生自同一个抽象基类。在上一篇文章 中,我们讨论到了 Python 数字的运算,然后我想探究“Python 的数字对象到底是什么”的话题,所以就翻译...

Python 到底是强类型语言,还是弱类型语言?

2020-08-31
阅读 6 分钟
1.5k
0、前言我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧。我们主要的分歧就在于:Python 到底是不是强类型语言? 我认为是,而他认为不是。他写了一篇很长的文章《谁告诉的你们Python是强类型语言!站出来,保证不...

Python 为什么没有 void 关键字?

2020-08-21
阅读 3 分钟
1k
The void type, in several programming languages derived from C and Algol68, is the type for the result of a function that returns normally, but does not provide a result value to its caller. 在 C、Algol68 及它们所派生的几种编程语言中,void 类型是函数正常返回的一种类型,但是不会给调用者返回一个值。

Python 函数为什么会默认返回 None?

2020-08-15
阅读 2 分钟
1.3k
Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。 本文出自“Python为什么”系列,在正式开始之前,我们就用之前讨论过的 pass语句 和 ...对象 作为例子,看看 Python 的函数是怎样“无中生有”的:可以看出,我们定义的两个函数都没有写任何的 return 语句,但是...

一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关

2020-08-14
阅读 3 分钟
1.1k
Python 中有没有办法通过类方法找到其所属的类?这个问题看起来不容易理解,我可以给出一个例子: {代码...} 现在有一个类和一个类方法,其中类方法上有一个装饰器。我们的问题就是要在装饰器代码中动态地获得 Test 这个类(类名+类对象)。 去年 11 月份的时候,我在微信读者群里提出了这个问题,当时引起了小范围的讨...

Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

2020-08-12
阅读 7 分钟
904
花下猫语:在上一篇《Python 为什么能支持任意的真值判断? 》文章中,我们分析了 Python 在真值判断时的底层实现,可以看出 Python 在对待布尔值时,采用了比较宽泛的态度。官方对此是怎么考虑的呢?下面的文章是我刚翻译的 PEP-285,作者是 Python 之父 Guido van Rossum。这个 PEP 意义非常重大,Python 的 bool 类型...

Python 为什么能支持任意的真值判断?

2020-08-08
阅读 4 分钟
1.8k
比如,在判断某个对象是否不为 None 时,或者判断容器对象是否不为空时,并不需要显示地写出判断条件,只需要在 if 或 while 关键字后面直接写上该对象即可。

Python 为什么会有个奇怪的“...”对象?

2020-08-01
阅读 4 分钟
1.8k
它是中文标点符号中的半个省略号,也即由英文的 3 个点组成。如果你是第一次看到,很可能会觉得奇怪:这玩意是怎么回事?(PS:如果你知道它,仔细看过本文后,你同样可能会觉得奇怪!)

C++模板沉思录(上)

2020-07-30
阅读 21 分钟
2.3k
花下猫语: 在我们读者群里,最近出现了比较多关于 C++ 的讨论,还兴起了一股学习 C++ 的风气。樱雨楼小姐姐对 C++ 的模板深有研究,系统地梳理成了一篇近 4 万字的文章!本文是上篇,分享给大家~

Python 为什么要有 pass 语句?

2020-07-27
阅读 3 分钟
1.1k
本文出自“Python为什么”系列,请查看全部文章 关于 Python 中的pass语句,它似乎很简单(只有 4 个字母),即使是没有任何编程经验的初学者也能很快地掌握它的用法。 官方文档 的介绍十分简单,下面的三个例子可以让我们快速地了解到如何使用它: 简单而言,pass 是一种空操作(null operation),解释器执行到它的时候...