首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Python学习
Python猫
创建于2021-08-01
订阅专栏
学习python
等 121 人订阅
共223篇文章
创建于2021-08-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
醒醒!Python已经支持中文变量名啦!
这两本书分别是《Python编程:从入门到实践》和《父与子的编程之旅》,它们都是畅销书,都在 2020 年 10 月出了新版本,都使用 Python3.7+ 版本的语法。 然而,在关于变量的命名规则部分,它们犯下了一样的错误,即还在使用 Python2 时代的那套说辞,误以为命…
2020年Python文章盘点,我选出了个人TOP10
大家好,我是猫哥。2020年过得真快啊!总感觉这一年里还没有做成多少事,一眨眼就又到了写年度总结的时候了…… 去年1月1日的时候,我写了《我的 2019 年 Python 文章榜单》,简单列了自己比较满意的 11 篇文章。今年延续传统,我想盘点出一份 2020 年的文章榜单。 …
脑洞:如何用一个整数来表示一个列表?
声明 | 本翻译已得到原作者授权。为便于阅读,内容略有改动。 与 C、Rust 和 Go 不同,Python 默认的int 具有任意大小。[注1] 、[注2] 这意味着,一个整数可以存储无限大的值,只要内存足够。 也就是说,在 Python 中,平常使用的 int 可以轻松地保…
Python最会变魔术的魔术方法,我觉得是它!
在上篇文章中,我有一个核心的发现:Python 内置类型的特殊方法(含魔术方法与其它方法)由 C 语言独立实现,在 Python 层面不存在调用关系。 但是,文中也提到了一个例外:一个非常神秘的魔术方法。 这个方法非常不起眼,用途狭窄,我几乎从未注意过它,然而,当发现它可能是上…
为什么继承 Python 内置类型会出问题?!
但是,《流畅的Python》一书值得反复回看,可以温故知新。最近我偶然翻到书中一个有点诡异的知识点,因此准备来聊一聊这个话题——子类化内置类型可能会出问题?! 其中,有大家熟知的数字类型、序列类型、文本类型、映射类型等等,当然还有我们之前介绍过的布尔类型、...对象 等等。 这…
如果只推荐一本 Python 书,我要 Pick 它!
如果要票选最佳的 Python 进阶类书目,这本书肯定会是得票率最高的书籍之一。我在最早写“Python猫荐书系列”时,就想推荐它,但又觉得好东西应该留到最后,所以一直拖到了现在…… 这本书的英文名是《Fluent Python》,在 2015 年 8 月出版。两年后,国内的图…
为什么说 Python 内置函数并不是万能的?
在Python猫的上一篇文章中,我们对比了两种创建列表的方法,即字面量用法 [] 与内置类型用法 list(),进而分析出它们在运行速度上的差异。 其实原因很简单:内置函数/内置类型的名称并不是关键字,它们只是解释器内置的一种便捷功能,方便开发者开箱即用而已。 内置函数的名称并…
Python 疑难问题:[] 与 list() 哪个快?为什么快?快多少呢?
这就回答了刚才的问题:创建空列表时,[] 要比 list() 快不少。 如上图所示,[] 的字节码有两条指令(BUILD_LIST 与 RETURN_VALUE),而 list() 的字节码有三条指令(LOAD_NAME、CALL_FUNCTION 与 RETURN_VALUE…
Python 为什么不支持 switch 语句?
在这篇文章里,我们会聊一聊为什么 Python 决定不支持 switch 语句。 主要是因为 switch 在其它语言中太常见了,而 Python 却不支持,这样的独特性本身就值得关注,而回答这个问题,也能更加看清 Python 在程序设计上的理念,了解 Python 在语法设…
耗时两年,我终于出了一本电子书!
2018 年国庆节前,我开通了微信公众号“Python猫”,写下了“喵星来客”系列的第一篇文章。 2020 年国庆节前,我累计创作和翻译了 130+ Python 技术文章。 时光匆匆,两年光阴很快就过去了。 在这个特殊的时间节点上,我感觉有必要把创作的内容做一下梳理,于是,也…
Python 之父为什么嫌弃 lambda 匿名函数?
Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" expression ,也就是 lambda 参数序列:表达式。 也就是说,Python 中的 lambda 函数是…
详解增强算术赋值:“-=”操作是怎么实现的?
声明 | 本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。 本文是 Python语法糖 系列文章之一。最新的源代码可以在 desugar 项目中找到(https://github.com/brettcannon/desuga…
详解 Python 的二元算术运算,为什么说减法只是语法糖?
声明 | 本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。 大家对我解读属性访问的博客文章反应热烈,这启发了我再写一篇关于 Python 有多少语法实际上只是语法糖的文章。在本文中,我想谈谈二元算术运算。 具体来说,我想解读…
Python 中的数字到底是什么?
花下猫语:在 Python 中,不同类型的数字可以直接做算术运算,并不需要作显式的类型转换。但是,它的“隐式类型转换”可能跟其它语言不同,因为 Python 中的数字是一种特殊的对象,派生自同一个抽象基类。在上一篇文章 中,我们讨论到了 Python 数字的运算,然后我想探究“…
Python 到底是强类型语言,还是弱类型语言?
我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧。 我们主要的分歧就在于:Python 到底是不是强类型语言? 我认为是,而他认为不是。 他写了一篇很长的文章《谁告诉…
Python 为什么没有 void 关键字?
void 是编程语言中最常见的关键字之一,从字面上理解,它是“空的、空集、空白”的意思,最常用于 表示函数的一种返回值类型。 简单来说,void 是一种类型(type),但是没有具体的值(value)。 以 Python 的几种常见类型为例,我们可以从对比中看出规律:int 是…
Python 函数为什么会默认返回 None?
Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。 可以看出,我们定义的两个函数都没有写任何的 return 语句,但是在函数调用后,都能取到一个返回值。 这 4 个例子属于两种类型:一种没有写 return…
一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关
现在有一个类和一个类方法,其中类方法上有一个装饰器。 我们的问题就是要在装饰器代码中动态地获得 Test 这个类(类名+类对象)。 去年 11 月份的时候,我在微信读者群里提出了这个问题,当时引起了小范围的讨论。 stackoverflow 上的问题提得很明确:Get defi…
Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?
本 PEP 提议引入一个新的内置类型bool,它将包含两个常量False和True。这个 bool 类型是 int 类型的直接子类型(在 C 中),并且在除了 repr() 和 str() 之外的大多数方面,它的值False和True 都将表现得像是 0 和 1(例如,Fals…
Python 为什么能支持任意的真值判断?
Python 在涉及真值判断(Truth Value Testing)时,语法很简便。 比如,在判断某个对象是否不为 None 时,或者判断容器对象是否不为空时,并不需要显示地写出判断条件,只需要在 if 或 while 关键字后面直接写上该对象即可。 如果需要作出相反的判断,…
下一页