GitHub 上有个非常牛逼的仓库,作者收集了很多有趣且鲜为人知的 Python “特性”。这些特性有些是真正的特性,也有些是陷阱,因为光从表面看起来就觉得反人类直觉,而所有的一切,其实都是 Cpython 内部实现中利弊之间的的权衡,有优点就有缺点。举个和字符串相关的特别例子:

>>> a = "wtf">>> b = "wtf">>> a is bTrue

这个比较好理解,a 和 b 指向同一个对象。

>>> a = "wtf!">>> b = "wtf!">>> a is bFalse

多了一个感叹号❗,两个变量指向的就不是同一个对象了。

再来看:

>>> a, b = "wtf!", "wtf!">>> a is bTrue

如果把两个变量写在一行,又指向同一个对象了。初学者看了一脸懵逼,即使你是有经验的 Python 开发者,第一次见到这种情况也会大为惊讶,原来 Python 中还有如此骚操作。 如果把代码放在IDE中执行,结果又不一样:

a = "wtf!"b = "wtf!"print(a is b)  # True

输出结果是 True,是不是觉得太匪夷所思了。 其实,这里面涉及到的知识点是CPython 为了提高性能对字符串对象做的优化,涉及到字符串的 intern 机制,还有代码块的知识等概念。

当然这个库还总结了很多很多类似让你惊讶的操作,比如关于哈希操作,有关字典特性,默认可变参数陷阱等等。总共有近100来个知识点总结。强烈建议大家好好研读,有利于对 Pytho 的进一步提高。目前这个库已经有将近10000万人关注,而且现在有网友提供了中文版了,这无疑给了不习惯阅读英语阅的人有一个利好消息。

英文地址:https://github.com/satwikkansal/wtfpython
中文地址:https://github.com/leisurelicht/wtfpython-cn

方便你阅读,我将其制作了一份PDF格式了,方便你离线阅读。你可以在微信公众号「Python之禅」后台回复关键词「2」获取这本电子书!

推荐阅读

  • 培训班出来的怎么了?

  • 一个诡异的问题


优秀如你都在关注

一份鲜为人知的Python特性相关推荐

  1. 【Python】有趣且鲜为人知的 Python 特性,火了!

    小编最近逛Github发现了一个给力的Python项目,绝对能让你傻眼!可以通过这个项目测试你对Python的熟悉程度! 这个项目叫做 "What the f*ck Python! ???? ...

  2. WTF Python:有趣且鲜为人知的Python特性

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 All problems, and ultimately is a matt ...

  3. 有趣且鲜为人知的 Python 特性,火了!

    小编最近逛Github发现了一个给力的Python项目,绝对能让你傻眼!可以通过这个项目测试你对Python的熟悉程度! 这个项目叫做 "What the f*ck Python!

  4. 3 个鲜为人知的 Python 特性

    这篇文章介绍了Python的一些不错的功能list,set以及tuple数据类型.我最近了解了这些,发现它们很有趣,并想与您,我的程序员伙伴分享. 套 这是最有趣的部分.我们将了解运算符<, & ...

  5. 后悔没早知道这些Python特性

    写 Python 也好几年时间了.讲道理,在工作中大家肯定遇到过这样的场景: 这个故事告诉我们什么?先造轮子再去 GitHub?还是提高下 GitHub 搜索技巧? 都不是! 实际上,在日常的工作中, ...

  6. 5 个越早知道越好的 Python 特性

    2019-12-29 18:04 导语:Python 有很多特性,初学者很难一开始就掌握所有的特性.现在我想要重点介绍其中五个最重要的特性. Kirill Sharkovski 发布在 Unsplas ...

  7. python版本越高越好吗-5个Python特性 越早知道越好的

    Python Python开发 Python语言 5个Python特性 越早知道越好的 Kirill Sharkovski 发布在 Unsplash 杂志上的照片 AI开发者按,Python 是近十年 ...

  8. 四十七、第二份国外的Python考试(上篇)

    @Author:Runsen @Date:2020/5/26 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...

  9. python 默认参数_有趣的 Python 特性 3 | 当心默认可变参数这个大猪蹄子。

    本文字数:1575 字 阅读本文大概需要:4 分钟 写在之前 Python 提供了很多让使用者觉得舒服至极的功能特性,但是随着不断的深入学习和使用 Python,我发现其中存在着许多玄学的输出与之前预 ...

最新文章

  1. 破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV
  2. apache 版本_Apache Hudi 0.5.1版本重磅发布
  3. 全球及中国胶合板行业产量规模与营运能力研究报告2022版
  4. 64位java_99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?
  5. javascript实用技巧--数组.
  6. Python实现模板
  7. MacOS/MacBook设置短语快捷键
  8. 基于windows平台的命令行软件安装工具Chocolatey的安装
  9. MHA环境搭建【4】manager相关依赖的解决
  10. 南师大附中2021高考成绩查询,2021高考倒计时,你有一份师大附中专属回忆录待查收~...
  11. iptables 命令记录
  12. 【数据迁移】Oracle冷备方式迁移数据库
  13. 嗜血者高盛:北京上空的秃鹰?
  14. HSPF(Hydrological Simulation Program Fortran)模型应用
  15. VS2017中无法识别PlaySound标识符解决办法(《逐梦旅程:Windows游戏编程之从零开始》FirstBlood篇)
  16. Java Annotation 刷课笔记(二)
  17. 2022新版海螺影视主题模板M3.1版本多功能苹果CMSv10后台自适应模板详解
  18. 无关风月怎谈价格:个性化直播源码打造多功能一对一交友、直播程序功能
  19. 用生成模型来做图像恢复的介绍和回顾:上下文编码器
  20. 1.1 生日悖论+1.2快速排序+1.3字符串比较+1.4 随机算法+1.5 定理+1.6 抽样

热门文章

  1. 【VC++游戏开发#九】2D篇 —— 粒子系统(二):平安夜特别版——星光四射
  2. 流放者柯南联机显示无法链接服务器,《流放者柯南》联机疑难问题解答
  3. Android-高质量开发之崩溃优化,赶紧学起来
  4. VS2019 常用快快捷键
  5. vue中的生命周期函数都在什么时候执行?
  6. GBase 8a的DBlink工具
  7. AISummit全球人工智能技术大会,洞悉AI技术的现在与未来
  8. Android手机不root查看/data/data/包名目录下的文件
  9. 腾讯云Coding平台入门指引
  10. Animator 播放多片段动画