簡體   English   中英

當 function 主體中的多行字符串時,無法在 VS Code 中生成帶有 autoDocstring 擴展名的 Python 文檔字符串

[英]Can't generate Python docstring with autoDocstring extension in VS Code when multiline string in the function body

要使用 Python Sphinx 生成文檔,我必須使用特定的文檔字符串格式。

VS Code 擴展autoDocstring能夠生成此特定格式,但如果 function 包含多行字符串,則它不起作用。

這種情況下的示例有效:

def func(param1, param2, param3):
    # docstring nicely generated
    """_summary_

    :param param1: _description_
    :type param1: _type_
    :param param2: _description_
    :type param2: _type_
    :param param3: _description_
    :type param3: _type_
    :return: _description_
    :rtype: _type_
    """

    random_variable = 42
    string_variable = "not a multiline string"

    return string_variable

但在這種情況下無法生成自動文檔字符串:

def func(param1, param2, param3):
    # doesn't work
    """"""

    random_variable = 42
    string_variable = """
             a 
             multiline
             string
     """

    return string_variable

任何人都知道一個技巧,或者讓它起作用的東西? 我在我的函數中使用了很多多行 SQL 字符串,如果我必須提取這些字符串才能使其正常工作,我需要進行大量重構。

鍵盤快捷鍵: ctrl+shift+2cmd+shift+2 for mac

我想出了解決方案並將其發布在這里,也許會對某人有所幫助。 實際上,解決方案非常簡單。 我將函數/類/任何字符串變量中的三重撇號更改為三重單引號,現在 autoDocstring 的解析器不會混淆。 例子:

def func(param1, param2, param3):
    # autoDocstring works
    """_summary_

    :param param1: _description_
    :type param1: _type_
    :param param2: _description_
    :type param2: _type_
    :param param3: _description_
    :type param3: _type_
    :return: _description_
    :rtype: _type_
    """

    random_variable = 42
    string_variable = '''
             a 
             multiline
             string
     '''

    return string_variable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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