Python
python
class decorator
http://openhome.cc/Gossip/Python/ClassDecorator.html 入门,容易理解
http://www.ibm.com/developerworks/cn/linux/l-cpdecor.html
http://ot-note.logdown.com/posts/67571/-decorator-with-without-arguments-in-function-class-form
CPyUG
super
https://rhettinger.wordpress.com/2011/05/26/super-considered-super/
MRO Method Resolution Order
*args, **kwargs
描述器(Descriptor)
def __getattr__(self, item)
def __call__(self, *args)
def __get__(self, instance, owner):
def __set__(self, instance, value):
def __delete__(self, instance):
__dict__
__getattr__
__slots__
PEP 484 - Type Hints
context manager,
@property
使用 Adapter 包装已有代码让 import 更简洁
reddit
Future, ThreadPoolExecutor https://www.laike9m.com/media/files/html/PyCon2014-concurrent.futures.html#/12
network https://laike9m.com/blog/pythonshi-xian-stunturnp2pliao-tian,29/
https://github.com/laike9m/PyPunchP2P
Decorators 装饰器 flask_login functools
itertools
functools
generators 生成器 itertools模块,contextlib with协议,迭代器协议, greenlet提供的协程, gevent,eventlet
描述符 property,classmethod,staticmethod都是通过描述符实现的,werkzeug和bottle都提供的cached_property,
__getattr__和__getattribute__
元类 sqlalchemy,django的orm中field __metaclass__ __new__和__init__
多线程 threading.RLock是 daemon thread Queue logging 线程池
abc模块的抽象方法机制
collections提供的有用容器
python中的编码问题
super为啥需要两个参数,而3不需要参数
经典的闭包问题
NotImplemented和NotImplementedError的区别
多继承的mro问题
相对导入原理(__name__,如果看最新开源代码,基本都是相对导入)......
正则表达式,那至少得知道贪婪,非贪婪,命名组等。
搞服务器开发,socket,twisted,gevent肯定要精通。
搞web开发,django,flask,tornado得熟悉。。
list comprehensions
ctype
Functional
Real World Haskell
SICP
http://www.zhihu.com/question/19794855
http://stackoverflow.com/questions/2573135/python-progression-path-from-apprentice-to-guru
def apprentice():
read(diveintopython)
experiment(interpreter)
read(python_tutorial)
experiment(interpreter, modules/files)
watch(pycon)
def master():
refer(python-essential-reference)
refer(PEPs/language reference)
experiment()
read(good_python_code) # Eg. twisted, other libraries
write(basic_library) # reinvent wheel and compare to existing wheels
if have_interesting_ideas:
give_talk(pycon)
def guru():
pass # Not qualified to comment. Fix the GIL perhaps?