基礎・中級問題チェック
問題 26 /40
次のコードのファイルがある場合、インタープリタで「import module」とインポートしたタイミングで、すぐに「hello」と表示されないようにするには、★★★に何を記述すればいいか。 module.py ------------------------------- def func(): print('hello') if __name__ == '__★★★__': func() -------------------------------
選択 1
main
選択 2
name
選択 3
module
選択 4
init
解説
選択肢1が正解です。
以下のコードの場合、インタープリタで「import module」とインポートしたタイミングで、すぐにfunc()が実行されます。
module.py
---------------------
def func():
print('hello')
func()
---------------------
インタープリタで「import module」とインポートすると、変数「__name__」に「'module'」が代入されます。
そのため、「if __name__ == '__main__':」と記述するとif文がFalseになり、func()が実行されません。
また、コマンドラインで「python module.py」とすると、変数「__name__」に「__main__」が代入されます。
そのため、「if __name__ == '__main__':」と記述するとif文がTrueになり、func()が実行されます。
このように「if __name__ == '__main__':」は、インタープリタで関数が意図せず実行されないようにしたり、「python module.py」でfunc()を確実に実行するために記述します。
(公式書籍 p.62)