怎么培养好 python 编程习惯,有什么优秀的代码推荐阅读吗?(对于新人) - V2EX
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 5426 次点击
    这是一个创建于 3396 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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     Solana     5639 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is poweredby solitude
    VERSION: 3.9.8.5 30ms UTC 02:07 PVG 10:07 LAX 18:07 JFK 21:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86