[英]restructuredText, docstring and python interactive shell
我使用reStructuredText來記錄我的代碼,以便通過epydoc獲得不錯的離線HTML頁面。
結果很棒。 唯一的缺點是當我使用Python交互式shell時,help()函數不解析文檔字符串中的reST元數據,而是顯示整個事物。
有沒有辦法讓help()對文檔字符串進行一些最小的解析?
我不希望渲染斜體字體或超鏈接,但至少進行一些最小的清理以提高可讀性。
help()
函數由site
模塊添加到內置命名空間,您可以通過在路徑上的某個位置創建sitecustomize.py
模塊來自定義(顯然它通常保存在site-packages中)。
然后在sitecustomize.py
文件中添加所需的任何自定義項。
您可以通過以下兩種方式處理:
如果要更改help()
函數本身的(明顯)行為,請將help()
函數包裝在裝飾器中,如:
def help_wrapper(func):
def inner(*args):
results = func(*args)
return your_cleanup_function_here(results)
help = help_wrapper(help)
我個人更喜歡稍微不同的解決方案,因為沒有人知道你的清理功能將如何幫助輸出不是用RestructuredText編寫的。
所以我只想創建一個包裝函數:
def my_help(*args):
return your_cleanup_function_here(help(*args))
這樣,如果需要,您仍然可以訪問原始的help()
函數。
CAVEAT:在sitecustomize.py中執行操作時要小心,因為無論你在這里做什么都可能會影響整個解釋器會話(以及每個解釋器會話),這有時會導致意想不到的后果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.