<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>「docstring」タグの記事一覧Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/tag/docstring/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Sun, 11 Jan 2026 05:27:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>「docstring」タグの記事一覧Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【doctest】Pythonプログラムをdoctestでテストする方法</title>
		<link>https://tech.nkhn37.net/doctest-basics/</link>
					<comments>https://tech.nkhn37.net/doctest-basics/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 04 Feb 2023 20:00:00 +0000</pubDate>
				<category><![CDATA[doctest]]></category>
		<category><![CDATA[docstring]]></category>
		<category><![CDATA[doctest.testmod]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=6916</guid>

					<description><![CDATA[Pythonプログラムをdoctestを使ってテストする方法について解説します。 doctestとは doctestは、Python標準で用意されているテストモジュールの一種で、docstring内に記載したテスト内容を [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonプログラムを<span class="marker"><strong>doctest</strong></span>を使ってテストする方法について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">doctestとは</h2>



<p class="wp-block-paragraph"><span class="marker"><strong>doctest</strong></span>は、Python標準で用意されているテストモジュールの一種で、docstring内に記載したテスト内容を対話的にテストするためのものです。doctestの公式ドキュメントは<a rel="noreferrer noopener" href="https://docs.python.org/ja/3/library/doctest.html#module-doctest" target="_blank">こちら</a>を参照してください。</p>



<p class="wp-block-paragraph"><span class="marker"><strong>docstring</strong></span>とは、以下の例のようにPythonプログラムのクラスや関数の定義の先頭に&#8221;&#8221;&#8221;で囲まれる文字列として記載するもので、各処理などの説明を記載するものを言います。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">class Sample:
    """Sampleクラス"""

    def add_and_double(self, x, y):
        """xとyを足して2倍した値を返却する

        Args:
            x: 入力値1
            y: 入力値2

        Raises:
            ValueError: int以外の場合

        Returns:
            (x + y) * 2 の計算結果
        """</pre>



<p class="wp-block-paragraph">なお、上記のdocstringの記載スタイルはGoogleスタイルと呼ばれるもので、他にも有名なところではNumPyスタイルといった記載方法もあります。</p>



<p class="wp-block-paragraph">さて、doctestに戻りますが、doctestはdocstring内にテストを記載することでテストケースの実行ができます。また、docstring内に入出力例が記載されるのでドキュメントとしても分かりやすくなるという利点があります。</p>



<p class="wp-block-paragraph">この記事では、doctestの基本的な使い方について紹介します。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">より本格的にテストを実行する場合には、<strong>pytest</strong>やPython標準の<strong>unittest</strong>といったテストフレームワークを使用するのがおすすめです。pytestやunittestについては以下でまとめていますので興味があれば参考にしてください。</p>



<ul class="wp-block-list jinr-list">
<li><a href="https://tech.nkhn37.net/pytest-basics/" target="_blank" rel="noreferrer noopener">Pythonプログラムをpytestでテストする方法</a></li>



<li><a href="https://tech.nkhn37.net/unittest-basics/" target="_blank" rel="noreferrer noopener">Pythonプログラムをunittestでテストする方法</a></li>
</ul>
</div>
		</div></section>



<h2 class="wp-block-heading jinr-heading d--bold">doctestの使い方</h2>



<h3 class="wp-block-heading jinr-heading d--bold">基本的な使い方</h3>



<p class="wp-block-paragraph">ここからは具体的に<span class="marker"><strong>doctest</strong></span>を使用したテストの例を見ていきましょう。doctestを使用する際には、以下のプログラム例(doctest_sample.py)のように実装します。</p>



<p class="wp-block-paragraph">今回はSampleクラスに定義したadd_and_doubleという簡単なメソッドをテストする例を使って説明していきます。まずは、プログラム全体を示して、細部については以降で順に説明していきます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">class Sample:
    """Sampleクラス"""

    def add_and_double(self, x, y):
        """xとyを足して2倍した値を返却する

        Args:
            x: 入力値1
            y: 入力値2

        Raises:
            ValueError: int以外の場合

        Returns:
            (x + y) * 2 の計算結果

        >>> tmp = Sample()
        >>> tmp.add_and_double(1, 1)
        4
        >>> tmp.add_and_double(2, 2)
        8
        >>> tmp.add_and_double("1", 1)
        Traceback (most recent call last):
        ...
        ValueError
        """
        # intでない場合は、ValueErrorとする
        if not isinstance(x, int) or not isinstance(y, int):
            raise ValueError

        # 計算処理
        result = x + y
        result *= 2

        return result


if __name__ == "__main__":
    import doctest

    # doctestを実行
    doctest.testmod()</pre>



<p class="wp-block-paragraph">なお、doctestではテストOKの場合、基本は何も表示されません。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python doctest_sample.py</pre>



<p class="wp-block-paragraph">そのため、上記のようにプログラムを実行しても何も表示されません。</p>



<h4 class="wp-block-heading jinr-heading d--bold">基本的な構成</h4>



<p class="wp-block-paragraph">doctestでは、docstring内に以下のようにテストコードを記載します。以下は一部抜粋しています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">    def add_and_double(self, x, y):
        """xとyを足して2倍した値を返却する

        ...(省略)...

        >>> tmp = Sample()
        >>> tmp.add_and_double(1, 1)
        4

        ...(省略)...
        """</pre>



<p class="wp-block-paragraph">docstring内で、「&gt;&gt;&gt;」で記載した行はPythonで実際に実行するプログラム行になっています。上記はSampleクラスをtmpでインスタンス化し、tmp.add_and_double(1,1)を実行しています。この時、正解は(1 + 1) × 2 = 4なので、その下に「4」という比較すべき答えを記載します。</p>



<p class="wp-block-paragraph">doctest自体は以下の部分で実行されています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">if __name__ == "__main__":
    import doctest

    # doctestを実行
    doctest.testmod()</pre>



<p class="wp-block-paragraph">上記はdoctestをインポートして、<span class="marker"><strong>doctest.testmod()</strong></span>が具体的にテストを実行しています。</p>



<p class="wp-block-paragraph">if __name__ == &#8220;__main__&#8221;:のブロックに記載しておくと、外部プログラムからライブラリとして呼び出されたときには実行されません。コマンドラインで__main__として呼び出されたときのみテストが実行されることになります。</p>



<p class="wp-block-paragraph">なお、テスト成功の場合は、何も結果に表示はされません。</p>



<h4 class="wp-block-heading jinr-heading d--bold">テストが失敗する場合</h4>



<p class="wp-block-paragraph">では、テストが失敗する場合を見てみましょう。例えば以下のようにすると、メソッドの返却値とテスト値が異なるので失敗となります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">    def add_and_double(self, x, y):
        """xとyを足して2倍した値を返却する

        ...(省略)...

        >>> tmp = Sample()
        >>> tmp.add_and_double(1, 1)
        8

        ...(省略)...
        """</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">**********************************************************************
File "d:\PythonProjects\python-tech-sample-source\python-tech-sample-source\python-libraries\doctest\doctest_sample.py", line 29, in __main__.Sample.add_and_double
Failed example:
    tmp.add_and_double(1, 1)
Expected:
    8
Got:
    4
**********************************************************************
1 items had failures:
   1 of   4 in __main__.Sample.add_and_double
***Test Failed*** 1 failures.</pre>



<p class="wp-block-paragraph">上記のようにメソッドからの返却値は4で、テストとして期待していたのが8なので一致せずにFailedということになります。</p>



<p class="wp-block-paragraph">なお、この例は、返却値は正しいわけですので、テストケースをミスしていた場合です。テストの失敗としては「テスト対象プログラムの処理結果が誤っている場合」や上記のように「テストケース自体が誤っているような場合」等、色々ありますのでエラーを見つつ、プログラムを修正していくようにしてください。</p>



<h4 class="wp-block-heading jinr-heading d--bold">例外の確認方法</h4>



<p class="wp-block-paragraph">次に、例外処理をテストする場合のテストメソッドの記載方法です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">    def add_and_double(self, x, y):
        """xとyを足して2倍した値を返却する

        ...(省略)...

        >>> tmp.add_and_double("1", 1)
        Traceback (most recent call last):
        ...
        ValueError
        """</pre>



<p class="wp-block-paragraph">今回のテスト対象プログラムsample.pyのadd_and_doubleメソッドでは、intではない引数が渡された場合にValueErrorを返却することになっています。</p>



<p class="wp-block-paragraph">この場合出力結果は「Traceback (most recent call last):～省略～ValueError」というような出力結果となります。</p>



<p class="wp-block-paragraph">doctestでこのような値との一致をみるときは、先頭の「Traceback (most recent call last):」と最後の「ValueError」部分を記載して、途中は「&#8230;」と記載することで一致を確認することができます。</p>



<p class="wp-block-paragraph">もし「tmp.add_and_double(1, 1)」のように例外をあげないような処理を記載するとテストは失敗となります。</p>



<h4 class="wp-block-heading jinr-heading d--bold">ちょっとした注意点</h4>



<p class="wp-block-paragraph">doctestを使用する際にちょっとした注意点があります。テスト対象のプログラム名を「doctest.py」としてしまうと、以下のようにtestmodがないということでAttributeErrorが出力されてしまいます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">AttributeError: module 'doctest' has no attribute 'testmod'</pre>



<p class="wp-block-paragraph">私がdoctestのサンプルプログラムを作ろうと思って安易に「doctest.py」としたことで、少しはまってしまいました。</p>



<p class="wp-block-paragraph">皆さんが普段テストするようなファイルがこのようなファイル名になっていることは、ほぼないかと思うので大丈夫だと思いますが、覚え書きということで記載しておきます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">処理結果の詳細表示方法</h3>



<p class="wp-block-paragraph">上記で説明した通りdoctestでは、テストOKの場合にはなにも出力されません。詳細表示を必ず表示したい場合には、以下に紹介する方法が使用できます。</p>



<h4 class="wp-block-heading jinr-heading d--bold">実行時に「-v」を指定して実行する</h4>



<p class="wp-block-paragraph">処理結果の詳細表示をテストOKでも表示したい場合は、以下のようにプログラム実行時のコマンドライン引数で「-v」を指定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python doctest_sample.py -v</pre>



<p class="wp-block-paragraph">この際の出力結果は以下のようになります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">> python .\doctest_sample.py -v
Trying:
    tmp = Sample()
Expecting nothing
ok
Trying:
    tmp.add_and_double(1, 1)
Expecting:
    4
ok
Trying:
    tmp.add_and_double(2, 2)
Expecting:
    8
ok
Trying:
    tmp.add_and_double("1", 1)
Expecting:
    Traceback (most recent call last):
    ...
    ValueError
ok
2 items had no tests:
    __main__
    __main__.Sample
1 items passed all tests:
   4 tests in __main__.Sample.add_and_double
4 tests in 3 items.
4 passed and 0 failed.
Test passed.</pre>



<h4 class="wp-block-heading jinr-heading d--bold">doctest.testmodにverbose=Trueを設定する</h4>



<p class="wp-block-paragraph">処理結果の詳細表示をテストOKでも表示したい場合のもう一つの方法としては、以下のようにdoctest.testmodの引数で<span class="marker"><strong>verbose=True</strong></span>を設定します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">if __name__ == "__main__":
    import doctest

    # doctestを実行
    doctest.testmod(verbose=True)</pre>



<p class="wp-block-paragraph">上記のように実装しておくと実行時に「-v」をつけなくても詳細が表示されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">> python .\doctest_sample.py   
Trying:
    tmp = Sample()
Expecting nothing
ok
Trying:
    tmp.add_and_double(1, 1)
Expecting:
    4
ok
Trying:
    tmp.add_and_double(2, 2)
Expecting:
    8
ok
Trying:
    tmp.add_and_double("1", 1)
Expecting:
    Traceback (most recent call last):
    ...
    ValueError
ok
2 items had no tests:
    __main__
    __main__.Sample
1 items passed all tests:
   4 tests in __main__.Sample.add_and_double
4 tests in 3 items.
4 passed and 0 failed.
Test passed.</pre>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Pythonプログラムを<span class="marker"><strong>doctest</strong></span>を使ってテストする方法について解説しました。</p>



<p class="wp-block-paragraph">doctestは、Python標準で用意されているテストモジュールの一種でdocstring内にテストを記載することでテストケースの実行ができます。また、docstring内に入出力例が記載されるのでドキュメントとしても分かりやすくなるという利点があります。</p>



<p class="wp-block-paragraph">手軽にテストできるモジュールとして是非doctestを使ってみてもらえればと思います。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">doctest の公式ドキュメントは<a href="https://docs.python.org/ja/3/library/doctest.html" target="_blank" rel="noreferrer noopener">こちら</a>を参照してください。</p>
</div>
		</div></section>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">より本格的にテストを実行する場合には、<strong>pytest</strong>やPython標準の<strong>unittest</strong>といったテストフレームワークを使用するのがおすすめです。pytestやunittestについては以下でまとめていますので興味があれば参考にしてください。</p>



<ul class="wp-block-list jinr-list">
<li><a href="https://tech.nkhn37.net/pytest-basics/" target="_blank" rel="noreferrer noopener">Pythonプログラムをpytestでテストする方法</a></li>



<li><a href="https://tech.nkhn37.net/unittest-basics/" target="_blank" rel="noreferrer noopener">Pythonプログラムをunittestでテストする方法</a></li>
</ul>
</div>
		</div></section>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--heading-box8  "><div class="a--simple-box-title d--bold">ソースコード</div><div class="c--simple-box-inner">
<p class="wp-block-paragraph">上記で紹介しているソースコードについては <a href="https://github.com/nkhn37/python-tech-sample-source/tree/main/python-libraries/doctest" target="_blank" rel="noreferrer noopener">GitHub</a> にて公開しています。参考にしていただければと思います。</p>
</div></div></section>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>


<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/doctest-basics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VSCodeの「Python Docstring Generator」拡張機能でdocstringを自動生成する</title>
		<link>https://tech.nkhn37.net/vscode-python-docstring-generator/</link>
					<comments>https://tech.nkhn37.net/vscode-python-docstring-generator/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sat, 12 Nov 2022 21:00:00 +0000</pubDate>
				<category><![CDATA[VS Code]]></category>
		<category><![CDATA[docstring]]></category>
		<category><![CDATA[Python Docstring Generator]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=5750</guid>

					<description><![CDATA[VSCodeでのPython開発でdocstringを自動生成してくれるPython Docstring Generatorについて紹介します。 Pythonにおけるdocstring Pythonでプログラミング開発を [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VSCodeでのPython開発でdocstringを自動生成してくれる<span class="marker"><strong>Python Docstring Generator</strong></span>について紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Pythonにおけるdocstring</h2>



<p class="wp-block-paragraph">Pythonでプログラミング開発をしている際に、関数やクラスなどの仕様を利用者に対して分かるようにすることが必要です。ダブルクオート(&#8220;)を３つ連続して並べた三重引用符で囲んで記載した文字列を<span class="marker"><strong>docstring</strong></span>と言います。</p>



<p class="wp-block-paragraph">例えば、docstringの例としては以下のような感じです。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">def sample_func(temp1: int, temp2: int) -> int:
    """2変数の加算結果を返却する

    Args:
        temp1 (int): 数値1
        temp2 (int): 数値2

    Returns:
        int: 加算結果
    """
    return temp1 + temp2</pre>



<p class="wp-block-paragraph">このdocstringについては、自分でゼロから書いてももちろんいいのですが、関数の定義をベースに自動で生成して、細部を埋めていく方がはるかに楽です。</p>



<p class="wp-block-paragraph">コードエディタであるVSCodeでは、拡張機能である「<span class="marker"><strong>Python Docstring Generator</strong></span>」を使用することで、docstringを自動生成することが可能になります。</p>



<p class="wp-block-paragraph">本記事では、Python Docstring Generatorをインストールや使い方、設定方法について紹介します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorの使い方</h2>



<h3 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorのインストール</h3>



<p class="wp-block-paragraph"><span class="marker"><strong>Python Docstring Generator</strong></span>は、Python拡張機能としてインストールできます。以下の手順でPython拡張機能をインストールしてください。</p>



<ol class="wp-block-list jinr-list">
<li>拡張タブを選択する。</li>



<li>検索窓で「docstring」と入力する。</li>



<li>検索された「autoDocstring &#8211; &#8230;」をクリックすると右側にPython拡張の説明が表示される。</li>



<li>インストールをクリックしてPython拡張機能をインストールする。</li>
</ol>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="729" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-1024x729.png" alt="Python Docstring Generator" class="wp-image-5752" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-1024x729.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-300x214.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87-768x547.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-87.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">上記のインストールを行うことでPython Docstring Generatorの機能が使用できるようになります。</p>



<h3 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorの使い方</h3>



<p class="wp-block-paragraph">Python Docstring Generatorの使い方は簡単です。</p>



<p class="wp-block-paragraph">開発しているPythonプログラムで関数を定義するときに、関数定義の下の行で以下のようにダブルクオート(&#8220;)を三つ入力すると「Generate Docstring」というように表示されるのでEnterを押します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="599" height="76" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-88.png" alt="Python Docstring Generator" class="wp-image-5753" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-88.png 599w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-88-300x38.png 300w" sizes="(max-width: 599px) 100vw, 599px" /></figure>
</div>


<p class="wp-block-paragraph">また、ダブルクオートを入力しなくても関数定義の下の行で「ctrl + shift + 2」とすることでも生成できますのでお好みの方法を利用してください。</p>



<p class="wp-block-paragraph">実行すると以下のようにdocstringが自動生成されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="589" height="212" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-90.png" alt="Python Docstring Generator" class="wp-image-5755" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-90.png 589w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-90-300x108.png 300w" sizes="(max-width: 589px) 100vw, 589px" /></figure>
</div>


<p class="wp-block-paragraph">_summary_や_description_のところを以下のように自分で書き換えればdocstringが完成します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="623" height="219" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-91.png" alt="Python Docstring Generator" class="wp-image-5756" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-91.png 623w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-91-300x105.png 300w" sizes="(max-width: 623px) 100vw, 623px" /></figure>
</div>


<p class="wp-block-paragraph">docstringを記載しておくと、以下のように呼び出しもとで関数にマウスのカーソルを合わせる等するだけ以下のように、関数の概要を把握することも可能になります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="588" height="227" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-92.png" alt="Python Docstring Generator" class="wp-image-5757" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-92.png 588w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-92-300x116.png 300w" sizes="(max-width: 588px) 100vw, 588px" /></figure>
</div>


<h3 class="wp-block-heading jinr-heading d--bold">Python Docstring Generatorの設定</h3>



<p class="wp-block-paragraph">Python Docstring Generatorでは、「google」スタイルのフォーマットがデフォルト設定となっています。</p>



<p class="wp-block-paragraph">拡張機能のインストール一覧からPython Docstring Generatorの[歯車マーク]-[拡張機能の設定]をクリックすると設定を確認することができます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="981" height="518" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93.png" alt="Python Docstring Generator 設定" class="wp-image-5758" style="width:491px;height:259px" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93.png 981w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93-300x158.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-93-768x406.png 768w" sizes="(max-width: 981px) 100vw, 981px" /></figure>
</div>


<p class="wp-block-paragraph">以下のAuto Docstring: Docstring Formatの部分がフォーマットに関する設定になります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="147" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-1024x147.png" alt="Python Docstring Generator
Auto Docstring: Docstring Format" class="wp-image-5759" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-1024x147.png 1024w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-300x43.png 300w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94-768x110.png 768w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-94.png 1180w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p class="wp-block-paragraph">プルダウンをクリックして見ると以下のように結構たくさんの種類がありますね。自分の好みやプロジェクトの方針により設定を変更して使用してください。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="503" height="299" src="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-95.png" alt="Python Docstring Generator
Auto Docstring: Docstring Format" class="wp-image-5760" style="width:377px;height:224px" srcset="https://tech.nkhn37.net/wp-content/uploads/2022/11/image-95.png 503w, https://tech.nkhn37.net/wp-content/uploads/2022/11/image-95-300x178.png 300w" sizes="(max-width: 503px) 100vw, 503px" /></figure>
</div>


<p class="wp-block-paragraph">どのスタイルを使うのがよいのかという話があるかと思います。numpyスタイルか、googleスタイルかといったあたりがよく話が上がるような気がしますが、プロジェクトとして一貫していればいずれのフォーマットでも問題ないかと思います。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">VSCodeでのPython開発でdocstringを自動生成してくれる<span class="marker"><strong>Python Docstring Generator</strong></span>について紹介しました。</p>



<p class="wp-block-paragraph">Python Docstring Generatorのインストール、基本的な使い方、スタイルの設定について説明しています。docstringの記載は関数等の説明を利用者やプロジェクトメンバに伝える意味でも、プログラミングにおいて重要なことであると思っています。</p>



<p class="wp-block-paragraph">ゼロから自分で書くのは少し面倒ですので、Python Docstring Generatorを活用して効率よく記載していってもらえるとよいかと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/vscode-python-docstring-generator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: tech.nkhn37.net @ 2026-06-16 02:27:02 by W3 Total Cache
-->