実践・中級問題チェック

問題 35 /40

doctestを実行する場合、【A】と【B】に記述するものはどれか。

sample.py
-------------------------------
"""
a + b を行う関数です

【A】 func(3, 6)
9
"""

def func(a, b):
    return a + b

if __name__ == '__main__':
    import doctest
    doctest.【B】
-------------------------------

選択 1

【A】 >>>
【B】 testfile()

選択 2

【A】 <<<
【B】 testfile()

選択 3

【A】 >>>
【B】 testmod()

選択 4

【A】 <<<
【B】 testmod()

解説

選択肢3が正解です。

doctestは「>>> 」に続けてテストコードを書き、その直下に期待する出力結果を記述します。

doctestを実行する関数はtestmod()です。選択肢1、2のtestfile()は、テキストファイルに記述したテストコードを実行する場合の関数です。

なお、問題文のファイルに対してコマンドラインで「python sample.py」を実行すると、変数「__name__」に「__main__」が代入されます。

問題文のように「if __name__ == '__main__':」と記述すると、if文がTrueになりdoctest.testmod()が確実に実行されます。


(公式書籍 p.366-367)