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

怎么培养好 python 编程习惯,有什么优秀的代码推荐阅读吗?(对于新人)

  •  2
     
  •   Michael728 · 2016-09-07 18:40:08 +08:00 · 4913 次点击
    这是一个创建于 3035 天前的主题,其中的信息可能已经有所发展或是发生改变。
    python 代码被领导鄙视,写的代码从上到下,一步一步执行,没有面向对象编程的思想,希望能如题,给点建议。
    29 条回复    2016-09-09 13:39:19 +08:00
    tttimit
        1
    tttimit  
       2016-09-07 18:43:57 +08:00 via Android
    我也基本上算个新手。

    建议还是看一些工程方面的书,比如代码大全,代码简洁之道等。
    Michael728
        2
    Michael728  
    OP
       2016-09-07 18:50:57 +08:00
    @tttimit 那种大部头感觉需要比较大的工作经验之后读收货更大点,我想在想看看有没有关于 python 方面的内容
    stdying
        3
    stdying  
       2016-09-07 18:55:12 +08:00
    我觉得第一步就是统一自己的代码格式,就好比,所然张的丑,但可以打扮的干净点。
    干净整洁的代码看起来就像清风扶面。
    Michael728
        4
    Michael728  
    OP
       2016-09-07 18:58:19 +08:00
    @stdying 哈哈,好咧,这是代码规范,从编程思想上呢?例如,面向对象等,有什么好的建议吗?新人哈:)
    hitmanx
        5
    hitmanx  
       2016-09-07 19:02:31 +08:00
    代码和文章一样,都是从模仿别人开始的。回想一下比如语文和英语,咱们是怎么从小时候只会写主谓宾发展到今天的,道理是一样的
    gunshot
        6
    gunshot  
       2016-09-07 19:11:45 +08:00 via iPhone
    我正在看 Fluent Python, 介绍了很多优雅的写法。
    crazykuma
        7
    crazykuma  
       2016-09-07 20:01:25 +08:00   ❤️ 1
    看 gayhub 的高 star 项目。。表示啃了一个我感觉自己 exp 暴涨。。
    Michael728
        8
    Michael728  
    OP
       2016-09-07 23:19:18 +08:00 via iPhone
    @hitmanx 你这个比喻很好,有点明白了
    zhuangzhuang1988
        9
    zhuangzhuang1988  
       2016-09-07 23:33:24 +08:00
    1 楼说得对
    那些事通用的, 即使是针对 python
    likuku
        10
    likuku  
       2016-09-08 00:06:54 +08:00
    没必要为了技巧而技巧,为了复杂而复杂 (简单事情复杂化,而只是为了炫技,本末倒置了)

    能很容易得阅读(稍微高点追求,可以注意编码风格,参考 PEP8 即可),其次可以顺利解决业务,最后可以高效解决业务,这就足够了。
    7sDream
        11
    7sDream  
       2016-09-08 00:13:44 +08:00
    https://github.com/7sDream/zhihu-oauth

    大概可以看一下同是新手时的我写的这个库?

    感觉虽然没什么技术含量,但是对新手来说还是有点价值的。

    最主要是我代码文档和注释都挺齐全,看不懂的时候可以看文档: http://zhihu-oauth.readthedocs.io/zh_CN/latest/

    (另一个 zhihu-py3 并不推荐看,大一大二写的,其实代码质量有点糟糕,虽然 star 比这个多)

    ---

    然后这个: https://github.com/7sDream/pyqart

    pyqart/qr 这部分可以看看,是个完整的二维码生成器,结构也还可以。
    TheCure
        12
    TheCure  
       2016-09-08 00:23:08 +08:00
    requests 库
    xiahei
        13
    xiahei  
       2016-09-08 08:10:42 +08:00
    flask 源码。
    wyntergreg
        14
    wyntergreg  
       2016-09-08 08:59:04 +08:00
    python 不是面向对象的语言, python 不是面向对象的语言, python 不是面向对象的语言
    python 是动态语言
    跟你领导说:要什么自行车?
    hyrious
        15
    hyrious  
       2016-09-08 09:02:44 +08:00 via Android
    很抱歉本条回复没有帮助。
    “面向对象”这个迷信,本质上其实是用来“节约代码”的,没必要什么 real world 都用 oop 套,不少新人估计会有这个误区吧 (当然我不清楚你领导的想法)。
    另外,写代码又不是为了让领导看懂的,不然他自己写啊。
    领导怎么知道你的代码是不是手写的,说不定是优化过之后生成的 (x 。
    优秀的代码可以看各种开源框架的源码,大概学个缩进空格的习惯感觉就很好了 (看着舒服),当然最后如果有压缩需求另说。
    更优雅的代码套路就需要学逻辑了,什么设计模式啊之类的。
    最后还是要说一句,代码生成啊,赞 (逃。
    Michael728
        16
    Michael728  
    OP
       2016-09-08 09:04:10 +08:00   ❤️ 1
    @7sDream 恩恩,感谢推荐
    Michael728
        17
    Michael728  
    OP
       2016-09-08 09:09:19 +08:00
    @callofmx 早上看《编写高质量的代码:改善 python 程序的 91 个建议》,里边也提到了 requests 库
    littleshy
        18
    littleshy  
       2016-09-08 09:44:55 +08:00
    其实我感觉用 Python 面向对象有点太累了。几个函数搞定了非得弄一堆类,并不简洁。
    喜欢面向对象还是用 C#, Java 吧。
    slysly759
        19
    slysly759  
       2016-09-08 13:37:19 +08:00
    @7sDream 模仿代码中
    7sDream
        20
    7sDream  
       2016-09-08 14:12:46 +08:00
    @slysly759 模仿哪个 QwQ
    slysly759
        21
    slysly759  
       2016-09-08 14:28:23 +08:00
    @7sDream 哈哈 觉得整体布局 然后注释 单文件的 args 传参数 都蛮不错 已经 follow
    Michael728
        22
    Michael728  
    OP
       2016-09-08 15:47:05 +08:00
    @7sDream 对了,我想知道你这个模块是干嘛用的?
    7sDream
        23
    7sDream  
       2016-09-08 16:11:56 +08:00
    @Michael728

    哪个模块?
    Michael728
        24
    Michael728  
    OP
       2016-09-08 18:31:45 +08:00
    @7sDream 就是你这个项目,是用来干嘛的?
    7sDream
        25
    7sDream  
       2016-09-08 18:45:16 +08:00
    @Michael728

    我回复了你两个项目啊…你指哪一个……
    wizardforcel
        26
    wizardforcel  
       2016-09-08 18:46:10 +08:00
    面向对象不是叫你把所有东西都塞进类里面。有的时候函数的抽象层次就够了。
    Michael728
        27
    Michael728  
    OP
       2016-09-09 07:30:08 +08:00 via iPhone
    @7sDream zhihu-oauth 那个,文档写的比较全的那个
    7sDream
        28
    7sDream  
       2016-09-09 11:37:56 +08:00
    @Michael728

    基本上就是个知乎 Python SDK ?抓的 Android 端的接口,然后吧 JSON 封装了一下做了个 ORM 。

    你可以拿去写知乎的客户端,或者抓一些你想要的数据什么的。
    7sDream
        29
    7sDream  
       2016-09-09 13:39:19 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:13 · PVG 04:13 · LAX 12:13 · JFK 15:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.