1. 程式人生 > >原始碼閱讀筆記——HowDoI

原始碼閱讀筆記——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程式設計之美》