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
lcj2class
V2EX  ›  Python

Python 最佳实践

  •  
  •   lcj2class · 2016-03-06 15:42:46 +08:00 · 4570 次点击
    这是一个创建于 3180 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这周五在团队内部做了个 Python 的分享,现在把演示文档放出来,供大家参考。

    有什么不对的地方请指正。😊

    http://python-best-practice.liujiacai.net
    30 条回复    2016-03-08 14:30:00 +08:00
    zeroten
        1
    zeroten  
       2016-03-06 15:47:43 +08:00   ❤️ 1
    倒是感兴趣这个页面是用什么做的
    strahe
        2
    strahe  
       2016-03-06 16:08:14 +08:00
    @zeroten 看下 impress js 的 demo 就知道了
    lc4t
        3
    lc4t  
       2016-03-06 16:29:44 +08:00
    @zeroten reveal.js
    em3rge
        4
    em3rge  
       2016-03-06 18:39:12 +08:00
    有些语法错误; import pandas as pd 只是一种约定俗成,并没有让代码更加 explicit ; str 在 python3 里更容易处理;剩下似乎是 PEP8 的内容……
    yangtukun1412
        5
    yangtukun1412  
       2016-03-06 19:19:35 +08:00
    用 backslash 分隔长字符串的做法不敢苟同,个人更倾向于用括号括起来的写法…
    shyling
        6
    shyling  
       2016-03-06 20:11:17 +08:00
    用 flask 做例子真的适合么=。=
    lcj2class
        7
    lcj2class  
    OP
       2016-03-06 20:12:14 +08:00
    @em3rge
    这应该不算是语法错误吧, 我的意思是引用长的模块时,可以做个别名。

    str 在 python 2 与 3 差距是很大,我们这边一直用的是 2 , 如果要迁移成本略大。所以我这个算是 python 2 的“最佳实践”
    lcj2class
        8
    lcj2class  
    OP
       2016-03-06 20:12:42 +08:00
    @yangtukun1412
    能举个例子吗
    nooper
        9
    nooper  
       2016-03-06 20:13:16 +08:00
    pandas 这个无所谓啊。
    Suddoo
        10
    Suddoo  
       2016-03-06 20:29:24 +08:00
    应该是 IPython Notebook 吧
    em3rge
        11
    em3rge  
       2016-03-07 08:48:25 +08:00
    @lcj2class 我指英文的语法错误..
    yangtukun1412
        12
    yangtukun1412  
       2016-03-07 09:57:27 +08:00
    @lcj2class 比如说这样:

    zen = (
    'Beautiful is '
    'better than ugly.'
    )

    使用 backslash 有一个不爽的地方在于,换行后的字符串往往需要顶格写,否则会为字符串中带来额外的空格。而这样写又会破坏 Python 基于缩进的语法。
    lcj2class
        13
    lcj2class  
    OP
       2016-03-07 10:11:46 +08:00
    @yangtukun1412
    嗯,之前不知道这种写法。你这个确实比我的好些,我更新下。🙏
    lcj2class
        14
    lcj2class  
    OP
       2016-03-07 10:22:21 +08:00
    @em3rge

    可以具体点嘛,我知错就改的
    xFrank
        15
    xFrank  
       2016-03-07 12:01:30 +08:00
    with open("test.txt", "r") as f:
    for line in f:
    print(line.strip())
    xFrank
        16
    xFrank  
       2016-03-07 12:02:07 +08:00
    可以简化成:
    for line in open("test.txt", "r"):
    print(line.strip())

    我觉得比 with 好
    lgh
        17
    lgh  
       2016-03-07 12:17:02 +08:00
    @xFrank 你这样写的话, open() 时出异常就要自己处理了。还是用 with 更好。
    gkiwi
        18
    gkiwi  
       2016-03-07 12:47:36 +08:00
    http://python-best-practice.liujiacai.net/#/6
    这页能把装饰器上面加个空格么~~
    gkiwi
        19
    gkiwi  
       2016-03-07 12:49:13 +08:00
    no Python documentation found for 'Happy Python'
    23333
    xFrank
        20
    xFrank  
       2016-03-07 13:43:16 +08:00
    @lgh
    不明白你的意思:用 with , open 出异常也是要处理的啊
    songkaiape
        21
    songkaiape  
       2016-03-07 15:00:11 +08:00
    @xFrank 应该是说 with 之后会自动关闭,不用自己调用 close 了
    songkaiape
        22
    songkaiape  
       2016-03-07 15:24:55 +08:00
    楼主的博客也是 hexo 搭建在 github 上的啊,那这个演示页面是单独放了个 REPO 还是放在什么特定目录里呢?
    janxin
        23
    janxin  
       2016-03-07 18:47:08 +08:00
    @songkaiape 新建一个仓库,然后创建一个 gh-pages 分支即可。
    mengzhuo
        24
    mengzhuo  
       2016-03-07 20:19:01 +08:00
    竟然不演示 battery included
    写个 web 服务还要 flask ?
    直接
    python -m SimpleHTTPServer
    lcj2class
        25
    lcj2class  
    OP
       2016-03-07 21:04:49 +08:00
    @mengzhuo
    SimpleHTTPServer 有介绍的
    http://python-best-practice.liujiacai.net/#/6/1

    battery included 后台整理下,再放上来
    lcj2class
        26
    lcj2class  
    OP
       2016-03-07 21:05:35 +08:00
    @songkaiape
    单独放个 repo ,然后 CNAME 指定就好了
    lcj2class
        27
    lcj2class  
    OP
       2016-03-07 21:07:43 +08:00
    @gkiwi
    已经加了😊
    stormpeach
        28
    stormpeach  
       2016-03-07 22:54:52 +08:00
    写的挺好,学习了
    lgh
        29
    lgh  
       2016-03-08 06:57:35 +08:00 via Android
    @xFrank 就是 @songkaiape 说的那个意思^_^
    xFrank
        30
    xFrank  
       2016-03-08 14:30:00 +08:00
    @songkaiape
    @lgh
    for line in open("test.txt", "r"):
    print(line.strip())
    --------
    这个代码后面也不需要手动调用 close
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5370 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 07:31 · PVG 15:31 · LAX 23:31 · JFK 02:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.