
关于 python 项目,尤其是 web 项目,并没有一个比较完整(包含代码、测试、项目)的开源规范,于是我整理(chaoxi)了一本《 Python 代码、单元测试和项目规范》,以供大家参考,代码规范部分主要基于 PEP8
目前书还没有写完,可能存在很多错误和不合理的地方,欢迎大家参与编辑和指正
下载和预览(在线阅读、 pdf 、 epub 、 mobi ):
https://www.gitbook.com/book/python-guide/python-style-guide/details
项目地址(欢迎 PR 和 issu):
https://github.com/ee0703/python-style-guide
特别感谢 @sinux 提供第二章内容:单元测试规范
1 holyzhou 2015 年 12 月 5 日 不错 对我这种新手很有帮助 |
2 congeec 2015 年 12 月 5 日 很好,不过不够详细。比如说程序设计规范里 filter 和 map 的例子就不合适,这种情况下用 listcomp 最好。当然,你要是在前面说明编程范式统一用函数式,这个例子还是不错的 |
3 shyling 2015 年 12 月 5 日 我觉得有些写法说它“错误”不太好吧。。。不推荐的写法感觉会好点 |
4 xufang 2015 年 12 月 5 日 打开扫了一篇,非常好。单元测试这一块说得不错,堪称亮点。 希望能加入更多内容。好顶赞。 |
7 XianZaiZhuCe 2015 年 12 月 5 日 via Android 求 php 版本(逃 |
8 neoblackcap 2015 年 12 月 5 日 @unity0703 filter 函数在 Python 3 与生成器表达式是一个样,所以我觉得首要说明用什么版本的 Python 其二,正则表达式那边,我觉得尽可能不如说, 2 次以上的调用则要编译,否则就可以略去编译。 |
9 mahone3297 2015 年 12 月 5 日 @XianZaiZhuCe 最近不是有本 moder php 么 还要 php the right way |
10 bytenoob 2015 年 12 月 5 日 很好,收藏了,感谢楼主 |
11 KyleMeow 2015 年 12 月 5 日 GitBook PDF 的中文字体太奇怪了吧,楷体宋体混合,大小不一 |
14 staticor 2015 年 12 月 5 日 收藏+感谢. 恰好响应了我前阵子对测试, UNITTEST, 甚至是 TTD 开发流程上的一些困惑. |
15 unity0703 OP @neoblackcap 多谢指正 |
16 KyleMeow 2015 年 12 月 5 日 via iPhone @deepurple 嗯,其他教程的也是,只能下 EPUB 和 MOBI 后转为 PDF 。强迫症实在忍不了默认 PDF 的字体。 |
17 dydhyh 2015 年 12 月 6 日 mark , 好评啊, 新手表示很通俗易懂, 给楼主赞一个 |
18 guyskk 2015 年 12 月 6 日 模块命名我不赞同 ``` # 正确的模块名 import decoder import htmlParser # 错误的模块名 import Decoder import html_parser ``` 我认为 htmlparser > html_parser > htmlParser 模块名不应该用大写字母 见 https://pythonhosted.org/six/#module-six.moves |
19 unity0703 OP @guyskk 多谢指正,只有一个单词时一般采用全小写这点没有问题 关键就在于多个单词的时候,这个标准并不统一,比如 python2 中既有 SimpleHTTPServer, StingIO ,又有 argparse,unittest ,而 google 代码规范中的建议是 lower_with_underline ( Python 之父 guido 也建议这种方式) 就可读性来讲,首字母小写的驼峰命名会好一点,这也是大部分 java 规范采用的命名方法,其次是 lower_with_underline ,全小写的话可读性可能不是那么好,比如说 simplefilecache, commoninterpretergenerator, 你感受一下,改成 simpleFileCache, common_interpreter_generator 会好很多 综上,个人认为,首字母小写的驼峰命名,或者 lower_with_underline 会好很多 |
20 guyskk 2015 年 12 月 6 日 python2 中的命名比较混乱, python3 就好多了 commoninterpretergenerator 这样肯定很难看的,用 common_interpreter_generator 更好一点, python3 标准库中的名字比较长的模块也是用下划线命名,比如 zip_longest 而不是 zipLongest 。 但是这么长的模块名也是不好的,比如 web_server_gateway_interface 可以缩写为 wsgi , common_interpreter_generator 也可以缩写为 cig 。 |
21 enlau0912 2015 年 12 月 7 日 最近 C python ,本很有助,感。 |
22 hjkl0001 2015 年 12 月 7 日 收藏了,谢谢!!! |
23 mingyun 2015 年 12 月 15 日 mark |