V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jyjmrlk
V2EX  ›  Python

大家读过哪些 Python 源码呢?

  •  
  •   jyjmrlk ·
    masakichi · 2014-07-22 22:12:01 +08:00 · 4797 次点击
    这是一个创建于 3565 天前的主题,其中的信息可能已经有所发展或是发生改变。
    标准库、外部库都行,下面俩个就不用推荐了。
    最好谈谈体会哦。

    antigravity.py
    -----------------

    import webbrowser

    webbrowser.open("http://xkcd.com/353/")


    this.py
    -------

    s = """Gur Mra bs Clguba, ol Gvz Crgref

    Ornhgvshy vf orggre guna htyl.
    Rkcyvpvg vf orggre guna vzcyvpvg.
    Fvzcyr vf orggre guna pbzcyrk.
    Pbzcyrk vf orggre guna pbzcyvpngrq.
    Syng vf orggre guna arfgrq.
    Fcnefr vf orggre guna qrafr.
    Ernqnovyvgl pbhagf.
    Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
    Nygubhtu cenpgvpnyvgl orngf chevgl.
    Reebef fubhyq arire cnff fvyragyl.
    Hayrff rkcyvpvgyl fvyraprq.
    Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
    Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
    Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
    Abj vf orggre guna arire.
    Nygubhtu arire vf bsgra orggre guna *evtug* abj.
    Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
    Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
    Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

    d = {}
    for c in (65, 97):
    for i in range(26):
    d[chr(i+c)] = chr((i+13) % 26 + c)

    print "".join([d.get(c, c) for c in s])
    12 条回复    2014-07-28 15:01:13 +08:00
    tonyluj
        1
    tonyluj  
       2014-07-22 22:19:04 +08:00
    tornado/web.py
    CPython的src算不算?
    harryhao
        2
    harryhao  
       2014-07-23 00:36:24 +08:00
    python core,挺好看的
    davidli
        3
    davidli  
       2014-07-23 00:39:24 +08:00
    tornado
    看着里面一个个 try 和 if-else, 一直在想自己什么时候经验才能丰富到这种程度.
    cbsw
        4
    cbsw  
       2014-07-23 00:59:55 +08:00
    有两种情况:因工作需要而看源码,因为有些文档说得不太明白;因自己想通过阅读优秀的源码学习,这个必须得读写得非常优秀的代码,听别人说过 pocoo 小组的代码都写得很棒,有空准备花时间读读
    datou552211
        5
    datou552211  
       2014-07-23 09:58:03 +08:00   ❤️ 1
    dulwich 好难
    no13bus
        6
    no13bus  
       2014-07-23 13:18:47 +08:00
    @cbsw @Livid 说的
    lianghui
        7
    lianghui  
       2014-07-23 14:39:17 +08:00
    tornado
    webob
    webpy
    cherrypy
    requests
    urllib2
    urllib3
    redis-py
    huey
    pika
    fapws3
    bottle
    lianghui
        8
    lianghui  
       2014-07-23 14:52:54 +08:00   ❤️ 5
    读tornado,能了解异步事件的处理和封装,另外就是http协议封装和基本处理,一个简单的template封装。
    webob你能看了解一个功能完善的wsgi库的构建
    webpy能了解一个精巧的wsgi和web框架封装,db库有些简单但能让你了解一个db的基本功能,一个pthonic的template模板系统。
    cherrypy一个完美的python面向对象web框架,自身的实现的产品级别的http server,支持chunked,ssl等,然后就是一个gg功能强大的hook系统以及wsgi api封装。

    requests一个让人偷懒的http client库 包含www-auth, 证书,cookies,proxy。连接池的优化等
    urllib3 urllib的再封装主要优化了请求的数据接收处理和https认证以及一个简单连接池。
    redis-py了解redis的功能,一个线程安全的redis库,也许需要分布式cache系统,需要作很多事。
    huey一个多backend的多线程ktas库,有任务定时,和任务queue,缺点过于简单,使用pickle序列化,不能解藕两端的的任务代码。
    pika apmq的实现,有很多异步的adapter实现方式(pylibev, tornado,poll, select),和一个比较有趣的i协议封装
    fapws3了解下简单的python c模块的封装
    bottle简单的web框架,最有趣的也许是那个五脏的麻雀,简单的hook,简单route系统,简单的wsgi request 和response封装和一些wsgi server的多适配api封装,和多模板适配简单封装
    julyclyde
        9
    julyclyde  
       2014-07-23 16:45:38 +08:00
    读过wsgiref、SocketServer库
    julyclyde
        10
    julyclyde  
       2014-07-23 16:45:56 +08:00
    读过django、webpy、flask框架的URL dispatch部分
    arbipher
        11
    arbipher  
       2014-07-28 09:51:22 +08:00
    惭愧,只读过tornado
    laoisaudi
        12
    laoisaudi  
       2014-07-28 15:01:13 +08:00
    惭愧,只读过tornado +1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4498 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 04:06 · PVG 12:06 · LAX 21:06 · JFK 00:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.