python进阶必读汇总

前言

昨天翻到了一本在github开源的书: Intermediate
Python
. 就有了此文,
梳理了一下一些之前翻到的对python语言细节点的答案, 博文等.

英文的

super

Python’s super() considered
super!

rhettinger是python核心开发者. 这篇博文也是讲super最好最深入的博文了.

装饰器

[Understanding Python
Decorators](http://stackoverflow.com/questions/739654/how-can-i-make-a-chain-
of-function-decorators-in-python/1594484#1594484)
如果你还没有经常性的用装饰器, 你就要思考你的工作需求是不是的太简单了, 或者该考虑下这种AOP模式的开发的作用了

元类

[What is a metaclass in
Python?](http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-
python/6581949#6581949)
Metaclasses Demystified
元类是python高阶语法. 合理的使用可以减少大量重复性的代码.

防御性编程中的LBYL和EAFP

[Try/catch or validation for
speed?](http://stackoverflow.com/questions/5589532/try-catch-or-validation-
for-speed/)
这其实就是事先检查和异常处理2个方式的讨论

newinit

[Python (and Python C API): new versus
init](http://stackoverflow.com/questions/4859129/python-and-python-c-api-
new-versus-init/)
这也是一个常见的面试题.

self

[Python “self” keyword](http://stackoverflow.com/questions/6019627/python-
self-keyword)
但是注意标题. 其实self不是一个关键词. 这里知识帮助你理解self的用意

协程和并发

A Curious Course on Coroutines and
Concurrency

生成器

Generator Tricks for Systems Programmers

python开发必读

Code Like a Pythonista: Idiomatic
Python

unicode必读

Unicode In Python, Completely Demystified
之前我曾经非常困惑于各种unicode报错

exec和eval

Be careful with exec and eval in
Python

我的观点是从来都不要用exec/eval

python性能贴士

PerformanceTips
Python Performance Tips, Part
1

Python Performance Tips, Part
2

描述符

How-To Guide for
Descriptors

python隐藏特性

[Hidden features of Python](http://stackoverflow.com/questions/101268/hidden-
features-of-python)

设计模式

python-patterns

初级python进阶文档

Intermediate and Advanced Software Carpentry in
Python

这个文档不是非常难, 甚至有点过时. 但是涵盖了python的方方面面. 非常有助于开拓视野, 更了解python

中(译)文

如何理解Python关键字yield

[What does the yield keyword do in
Python](http://stackoverflow.com/questions/231767/the-python-yield-keyword-
explained/231855#231855)
[如何理解Python关键字yield](https://github.com/lzjun567/note/blob/master/note/python/what-
does-the-yield-keyword-do-in-python.md)
yield 是python语言里面让初学者困惑的关键词之一. 可以参考这2个理解让你对yield入门. 并且之后在正确的场景下使用

迭代器(Iterator)与生成器(Generator)的区别

[Difference between Python’s Generators and
Iterators](http://stackoverflow.com/questions/2776829/difference-between-
pythons-generators-and-iterators)
迭代器(Iterator)与生成器(Generator)的区别
这个是很常见的面试问题.

设计模式入门

写给Python初学者的设计模式入门
所谓设计模式其实就是 经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案. 其实有时候会发现沃恩日常工作中的一些思考就是设计模式
python设计模式- 我写的.
供参考.

描述符

Descriptor HowTo Guide
[Python描述器引导(翻译)](http://pyzh.readthedocs.org/en/latest/Descriptor-HOW-TO-
Guide.html)
descriptor是python高阶的特性, 可以了解下python设计的优雅. PS: 里面也提到了类方法和静态方法的区别

使用断言(assert)的正确场景

Python 使用断言的最佳时机
[Best practice for Python
Assert](http://stackoverflow.com/questions/944592/best-practice-for-python-
assert)
Python track: python
idioms

Python的惯例

提高编码效率

[Improving Your Python Productivity](http://ozkatz.github.io/improving-your-
python-productivity.html)
[提高你的Python编码效率](http://pyzh.readthedocs.org/en/latest/improving-your-python-
productivity.html)

Stackoverflow上的Python问题精选

[Stackoverflow上的Python问题精选](http://pyzh.readthedocs.org/en/latest/python-
questions-on-stackoverflow.html)

Python魔法方法指南

[Python魔法方法指南](http://pyzh.readthedocs.org/en/latest/python-magic-methods-
guide.html)

Python高级编程 - 我写的

Python高级编程

洪强宁的ppt.

Python高级编程(二)
PS: 这个 和上一个没有任何次序关系

版权声明:本文由 董伟明 原创,未经作者授权禁止任何微信公众号和向掘金(juejin.im)转载,技术博客转载采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议
python