一份鲜为人知的Python特性
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特性相关推荐
- 【Python】有趣且鲜为人知的 Python 特性,火了!
小编最近逛Github发现了一个给力的Python项目,绝对能让你傻眼!可以通过这个项目测试你对Python的熟悉程度! 这个项目叫做 "What the f*ck Python! ???? ...
- WTF Python:有趣且鲜为人知的Python特性
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 All problems, and ultimately is a matt ...
- 有趣且鲜为人知的 Python 特性,火了!
小编最近逛Github发现了一个给力的Python项目,绝对能让你傻眼!可以通过这个项目测试你对Python的熟悉程度! 这个项目叫做 "What the f*ck Python!
- 3 个鲜为人知的 Python 特性
这篇文章介绍了Python的一些不错的功能list,set以及tuple数据类型.我最近了解了这些,发现它们很有趣,并想与您,我的程序员伙伴分享. 套 这是最有趣的部分.我们将了解运算符<, & ...
- 后悔没早知道这些Python特性
写 Python 也好几年时间了.讲道理,在工作中大家肯定遇到过这样的场景: 这个故事告诉我们什么?先造轮子再去 GitHub?还是提高下 GitHub 搜索技巧? 都不是! 实际上,在日常的工作中, ...
- 5 个越早知道越好的 Python 特性
2019-12-29 18:04 导语:Python 有很多特性,初学者很难一开始就掌握所有的特性.现在我想要重点介绍其中五个最重要的特性. Kirill Sharkovski 发布在 Unsplas ...
- python版本越高越好吗-5个Python特性 越早知道越好的
Python Python开发 Python语言 5个Python特性 越早知道越好的 Kirill Sharkovski 发布在 Unsplash 杂志上的照片 AI开发者按,Python 是近十年 ...
- 四十七、第二份国外的Python考试(上篇)
@Author:Runsen @Date:2020/5/26 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排 ...
- python 默认参数_有趣的 Python 特性 3 | 当心默认可变参数这个大猪蹄子。
本文字数:1575 字 阅读本文大概需要:4 分钟 写在之前 Python 提供了很多让使用者觉得舒服至极的功能特性,但是随着不断的深入学习和使用 Python,我发现其中存在着许多玄学的输出与之前预 ...
最新文章
- 破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV
- apache 版本_Apache Hudi 0.5.1版本重磅发布
- 全球及中国胶合板行业产量规模与营运能力研究报告2022版
- 64位java_99.9%的Java程序员都说不清的问题:JVM中的对象内存布局?
- javascript实用技巧--数组.
- Python实现模板
- MacOS/MacBook设置短语快捷键
- 基于windows平台的命令行软件安装工具Chocolatey的安装
- MHA环境搭建【4】manager相关依赖的解决
- 南师大附中2021高考成绩查询,2021高考倒计时,你有一份师大附中专属回忆录待查收~...
- iptables 命令记录
- 【数据迁移】Oracle冷备方式迁移数据库
- 嗜血者高盛:北京上空的秃鹰?
- HSPF(Hydrological Simulation Program Fortran)模型应用
- VS2017中无法识别PlaySound标识符解决办法(《逐梦旅程:Windows游戏编程之从零开始》FirstBlood篇)
- Java Annotation 刷课笔记(二)
- 2022新版海螺影视主题模板M3.1版本多功能苹果CMSv10后台自适应模板详解
- 无关风月怎谈价格:个性化直播源码打造多功能一对一交友、直播程序功能
- 用生成模型来做图像恢复的介绍和回顾:上下文编码器
- 1.1 生日悖论+1.2快速排序+1.3字符串比较+1.4 随机算法+1.5 定理+1.6 抽样