HowDoI
HowDoI是命令行应用,用以搜索编程问题的答案,源码十分简短,也体现了一些推荐的Python项目的结构和代码风格。
用法示例
代码结构
- howdoi
主要依赖
- requests —— 爬取页面
- argparse —— 命令行应用传参
- pyquery —— ???
代码结构与风格
- 一个函数只做一件事情
- PEP8代码风格
- 内部函数使用带下划线的前缀,说明不允许外部调用
- 单元测试,用AssertTrue做单元测试,函数内部错误返回False,不测试内部函数
- 仅在一处地方处理兼容性问题
try: from A import B as C except ImportError: from A.D import B as C
- 单处Return
细节
- requests使用随机的请求头
- __init__中只写了版本号
- test_howdoi.py通过form howdoi import howdoi 导入核心模块
- python2和python3处理unicode的方式不同
这样做比在函数内部判断好在一处完成,无需在每次调用函数时判断# Handle Unicode between Python 2 and 3 # http://stackoverflow.com/a/6633040/305414 if sys.version < '3': import codecs def u(x): return codecs.unicode_escape_decode(x)[0] else: def u(x): return x
Reference
[1]《Python编程之美》