基础语法都知道,代码也基本能读懂,可是动手能力差,写代码没有任何头绪,开源项目中的代码稍微复杂就难以理解,这是不少初学者面临的困惑。国内 Python 教程参差不齐,大多数仅停留在基础语法层面,这致使不少初学者甚至一些富有经验的开发者写出来的代码带有浓重的“口音”(从其它语言转移过来的编程思惟),好比:python
a = 1
b = 2
# 交换两个变量
tmp = a
a = b
b = tmp复制代码
这代码虽然能正确执行,但在 Python 中这是很不专业的写法,真正的 Pythonic 写法是:程序员
a = 1
b = 2
a, b = b, a复制代码
又好比遍历带索引下标的集合对象时,非Python程序员首先想到的写法多是先定义一个索引下标变量 : 编程
colors = ['red', 'green', 'blue', 'yellow']
index = 0
for x in colors:
print(index, colors[index])
index += 1复制代码
若是你是一个有经验的Python程序员,那么你必定会想到 enumerate
函数能实现这样的功能。数据结构
colors = ['red', 'green', 'blue', 'yellow']
for index, color in enumerate(colors):
print(index, color)复制代码
诸如此类优雅的写法,还有不少高级特性,装饰器、生成器、迭代器、描述符等概念掺杂在一块儿让人望而生畏。棘手的字符编码问题,字节字符串与 Unicode 字符串在 Python2 中互相转换能把人逼疯。函数做为第一类对象在实际应用中有着举足轻重的做用,理解函数,也就是理解闭包、装饰器、做用域、命名空间、内省等概念,几乎无人问津的 Python 垃圾回收机制、以及协程并发等与性能相关的主题,你可能这辈子都用不着的元类(若是你要着手写一个框架,那么你不可避免地须要去理解元类的概念以及应用。)面向对象的精髓,如何高效地使用Python数据结构,闭包
以上知识点都是通往 Python 高手之路所必须掌握的。并发
然而,彷佛历来没有一本书可以全面的从这些方面讲解,值得可贺的是,两年前一本叫作《Fluent Python》的书填补了 Python 社区没有像样的关于实战技巧、进阶提升书籍的空白。这本书通过两年时间的验证,口碑毋庸置疑,国内各类技术社区对此书都有不错的评论,英文版我有幸拜读过,它给个人工做提供很多帮助,是一本进阶程序员不可多得的好书。框架
一个利好消息,《Fluent Python》今年正式由图灵教育引进,中译本《流畅的Python》目前已经顺利出版。函数
赠书活动由图灵教育赞助,首先感谢图灵的支持,一共有5本书。活动的规则很简单,在公众号 "Python之禅"的 初级Python程序员如何进阶? 这篇文章下面留言就有机会得到此书。截止时间是5月21日24点性能
公众号:Python之禅 (id:VTtalk),分享 Python 等技术干货编码