源码阅读笔记——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编程之美》

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值