実践・中級問題チェック
問題 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)