簡體   English   中英

restructuredText,docstring和python交互式shell

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM