来了!《Python黑魔法指南》v3.0 版本
在上周,我摘取《Python黑魔法指南》v3.0 中的一个章节,单独整理成一篇文章发表出来,给大家分享干货的同时,也作为一个预告篇,把 flag 立下,逼一下自己早点把 PDF 做好,不然按照我这拖延的毛病,可能再过几个月也完不成。
考虑第二版到现在已经一年过去,中间陆续也新增了不少读者,这些人很多还不知道这本电子书的存在,一下就 3.0 了,难免会懵圈,所以我还是花点时间介绍一下。
《Python黑魔法指南》原本是取材于我在 2018 年的一个文章系列 《谈谈 Python 那些不为人知的冷知识》,每一篇都会分享 5 个我认为比较冷门的知识、或者高效的技巧。
对于当时仅有 几千个读者我来说,能有这个阅读量说明读者还比较喜欢这个系列的文章。
慢慢地随着内容的增多,就想着怎么样能把这么好的内容,分享到公域上,让更多的人看到,直到后来我接触到了 Sphinx ,立马就爱上了这款简单而不失优雅,纯粹而又专业的文档生成器。
就像下面这图这样,在手机上也适配,非常友好(体验请戳:https://magic.iswbm.com)。
于是花了几天的时间,就把这些内容整理成到 Github 上,目前在 Github 上有 2k 左右的星,是我获得星星最高的一个仓库。
后来我又突然想到我之前写过的那么多文章,那完全可以选一个主题,把同类型的文章整理在一起,制作一本属于我自己的电子书。
于是,同年5月份,我的第一本电子书《Python 黑魔法指南》v1.0 就面世了。内容虽然简单,但胜在题材新颖,全书 50 个冷知识看过之后,无一不说太爽了。
经过两次的迭代,《Python黑魔法指南》终于迎来了 v3.0 的版本,囊集了 100 多个开发小技巧,非常适合在闲时进行碎片阅读。
延续第二版的目录结构,第三版照样还是那七个章节
第三版的 tips 总共有 130 条左右 ,对比第二版本更新的 tips 数量达 50条,看过第二版的同学可以根据目录择需阅读。
下面按照惯例对书的章节做一些介绍
第一章:魔法冷知识
这一章节主要是整理了一些 看了也没啥用的 冷知识
比如 小整数池
>>> a = -6
>>> b = -6
>>> a is b
False
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a = 257; b = 257
>>> a is b
True
比如 intern 机制
>>> s1="hello"
>>> s2="hello"
>>> s1 is s2
True
## ???????????intern??
>>> s1="hell o"
>>> s2="hell o"
>>> s1 is s2
False
比如 大数表示法
>>> number=281_028_344
>>> number
281028344
第二章:魔法命令行
这一章我收集了几乎所有你知道的,你不知道的关于 Python 在命令行上的神奇用法。
比如最快查看包搜索方式
$ python3 -m site
sys.path = [
'/home/wangbm',
'/usr/local/Python3.7/lib/python37.zip',
'/usr/local/Python3.7/lib/python3.7',
'/usr/local/Python3.7/lib/python3.7/lib-dynload',
'/home/wangbm/.local/lib/python3.7/site-packages',
'/usr/local/Python3.7/lib/python3.7/site-packages',
]
USER_BASE: '/home/wangbm/.local' (exists)
USER_SITE: '/home/wangbm/.local/lib/python3.7/site-packages' (exists)
ENABLE_USER_SITE: True
比如如何往 Python 终端中传入参数
第三章:炫技魔法操作
这个章节是取自我个人原创系列《Python炫技操作》里的文章,其中的多篇文章成为了爆款文章,不少大号均有转载。很多网友看完后直呼 “卧槽,居然还能这样?!”
比如条件语句的七种写法,随便摘取其中三种
# 第一种
>>> msg1 = age1 > 18 and "已成年" or "未成年"
>>>
>>> print(msg1)
已成年
>>>
# 第二种
>>> msg1 = ("未成年", "已成年")[age1 > 18]
>>> print(msg1)
已成年
# 第三种
>>> msg1 = (lambda:"未成年", lambda:"已成年")[age1 > 18]()
>>> print(msg1)
已成年
比如读取文件的六种方式(里面的 filecache 非常好用)
第四章:魔法进阶扫盲
这一章节主要深入理解 Python 中那些难点,将这些难点逐个击破?比如:
- 如何写出一个可以带参数的装饰器呢?
- 装饰器可以装饰函数,那么你知道如何装饰类吗?
- 描述符的访问规则是什么?
- 描述符在实际开发中有哪些使用场景?
第五章:魔法开发技巧
这一章的内容,干货最多,不仅干而且非常实用。掌握这些代码编写技巧,对提高你代码的可读性、优雅性会很有帮助。
比如如何嵌套 for 循环写成单行?
比如如何流式读取数G超大文件
第六章:良好编码习惯
如果每个人都有代码洁癖症,在交接代码的时候,就轻松多了。养成良好的编码习惯,利他又利已。
这一章节收集了一些比较好的编码习惯。
比如利用any代替for循环
比如如何给模块属性上保险?
第七章:神奇魔法模块
这章节大家也许会比较熟悉,文章都在公众号发过,不少也成为了爆款文章。
主要收集了一些非常不错但知名度又不高的 Python 库。
比如 文件读取利器 fileinput
比如比正则好上手的轻量数据提取神器 parse
总之内容非常之多,全书PDF将近300页。多余的话不就多说了,这本书我已经打包好了,下载链接:https://wwe.lanzoui.com/iMquNqq4uri
若本书对你有帮助,方便的话,可以去 Github 上支持我一下加个小星星:https://github.com/iswbm/magic-python