news 2026/1/25 14:10:32

聊一些鲜为人知但有趣的Python特性,附案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
聊一些鲜为人知但有趣的Python特性,附案例

之前有个小学弟毕业论文用到Python做NLP,学了半个月跟我说Python真的太良心了,语法相对Java简洁很多。

我笑了笑说那是你用的太少,没遭遇到让人直呼f*ck的特性。

确实,对于初学者来说Python的静态类型、强制缩进、解释性、强类型等特质,让它变得像英语短句那样容易理解,也不需要你有很强的抽象思维能力。

但其实越往深里学,你会发现Python中有很多精心设计的小细节,会让新手觉得费解,甚至不解。

比如说,我们来检查下两个新的对象是否引用自同一对象:

x = 256 y = 256 print( x is y )

这将会返回True,确实引用自同一对象。

但如果你执行下面代码,会得到不一样的结果。

x = 257 y = 257 print( x is y )

它返回的是False

为什么几乎同样的代码,结果却大相径庭。

这主要是因为-5 到 256 内的整数经常会用到,这些对象在你启动Python的时候就已经分配好了。

所以256是一个已经存在的对象,而257并不是,相当于在内存中新建了两个对象:x和y。

当然上面只是Python奇妙特性中的一个简单案例,还有很多小技巧等待我们去探索,我觉得这也是一个有趣的过程。

更多的语言特性

之前在Github上看到过一个类似的项目,叫作wtfpython(What the f\*ck Python! ),作者就收集了众多让你知乎f*uk的Python知识点。

其中,有关于原始字符串r的作用,为什么在以 r 开头的原始字符串中, 反斜杠并没有特殊含义了。

还有在迭代中删除元素,del和remove的区别:

list_1 = [1, 2, 3, 4] list_2 = [1, 2, 3, 4] for idx, item in enumerate(list_1): del item for idx, item in enumerate(list_2): list_2.remove(item) print(list_1) print(list_2)

猜猜list_1和list_2输出的结果是相同还是不同?

执行上面代码后,list_1的结果是[1, 2, 3, 4],list_2的结果是[2, 4]

是不是有点意外哈哈,作者给出详细的解答,如下。

诸如此类的案例还有很多,包括了数据类型、逻辑语句、函数、类等语法技巧,大家可以去作者的项目查看。

https://github.com/leisurelicht/wtfpython-cn

我这边也把相应的内容梳理成PDF,大家关注公众号在后台回复【8】,即可获得完整版本。

就像作者在readme前言中说的,该项目意在收集 Python 中那些难以理解和反人类直觉的例子,以及鲜为人知的功能特性, 并尝试讨论这些现象背后真正的原理!

探索这些案例的过程也是对Python内部原理的深入了解,如果你能觉得有趣,那将收获颇丰。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/25 13:28:36

python健康饮食美食菜谱分享平台--论文_pycharm django vue flask

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 python健康饮食美食菜谱分享平台–论文_pycharm django vue f…

作者头像 李华
网站建设 2026/1/24 20:55:50

清华大学团队发布首个自主数据科学AI大模型DeepAnalyze:80亿参数超越GPT-4o,智能体训练范式重新定义数据分析

近日,清华大学和中国人民大学的研究团队在AI领域取得重大突破,发布了首个专为自主数据科学设计的智能体大语言模型DeepAnalyze。这项发表在顶级会议预印本上的研究工作,标志着AI大模型在数据科学自动化领域实现了从零到一的突破,将…

作者头像 李华
网站建设 2025/12/25 18:01:11

【独家解析】Open-AutoGLM架构设计内幕:Web交互背后的工程智慧

第一章:Open-AutoGLM Web交互全景概览 Open-AutoGLM 是一个面向自动化代码生成与自然语言任务处理的开源Web平台,融合了大语言模型(LLM)推理能力与图形化操作界面。用户可通过浏览器直接与模型交互,完成从代码生成、脚…

作者头像 李华
网站建设 2026/1/20 16:02:34

C++课后习题训练记录Day56

1.练习项目: 题目描述 蓝桥王国的每个快递都包含两个参数:1.快递单号 2.快递城市。 小李是蓝桥王国的一名快递员,每天的快递分拣让他苦不堪言。 于是他想要你帮他设计一个程序用于快递的分拣(将不同快递按城市信息分开&#x…

作者头像 李华
网站建设 2025/12/25 17:38:15

学者团队实现摄像头“看见”雷达技术突破

在自动驾驶汽车的世界里,有一场看不见的战争正在悄悄进行着。摄像头能够捕捉丰富的视觉细节,就像人眼一样看到红绿灯、行人和路标,但在雨雾天气中却容易"失明"。雷达则完全相反,它能在任何恶劣天气中稳定工作&#xff0…

作者头像 李华
网站建设 2026/1/23 5:56:53

Open-AutoGLM官方地址变更全解析(2024最全汇总+备用链接)

第一章:Open-AutoGLM地址变更背景与影响近期,Open-AutoGLM 项目的官方代码仓库与文档中心完成了地址迁移,这一变更是为了适应项目治理结构的升级以及提升全球开发者的访问效率。新地址统一整合了多个分散的子项目入口,实现了资源集…

作者头像 李华