源码阅读笔记——HowDoI

HowDoI

HowDoI是命令行应用,用以搜索编程问题的答案,源码十分简短,也体现了一些推荐的Python项目的结构和代码风格。

用法示例

在这里插入图片描述

代码结构

  • howdoi
    • howdoi # 核心代码目录
    • LICENSE.txt
    • README.rst
    • setup.py
    • requirements.txt
    • test_howdoi.py # 测试文件
    • 其他文件

主要依赖

  • 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编程之美》

猜你喜欢

转载自blog.csdn.net/luo3300612/article/details/83714502