Pythonの「if __name__ == “__main__”」とは【前編】
Pythonで目にする“謎”の構文「if __name__ == “__main__”」とは?
「Python」のプログラミングでは、「if __name__ == “__main__”」という構文を目にすることがある。この構文が持つ役割は何か。どのような場面で用いるのか。簡単な例を挙げて解説する。
プログラミング言語「Python」には、「if __name__ == “__main__”」という構文がある。この構文は、スクリプト(簡易プログラム)やスタンドアロンアプリケーションを実行する際のエントリーポイント(プログラムを実行し始める場所)を提供する。
Pythonはプログラムが変数の型を自動で決定する「動的型付け」をするといった特徴を備えるため、プログラミング初心者にも親しみやすい言語だ。ただし、その構文の中には、どう解釈すればいいか分かりにくいものがある。if __name__ == “__main__”もその一つだ。
この構文を使うと何ができる? 具体的な使い方は?
if __name__ == “__main__”を使うと、単体で実行可能なプログラムと、そのプログラムにインポートして使うモジュール(再利用可能なソースコードのまとまり)を1つのファイルにまとめて定義できる。
以下に、if __name__ == “__main__”を使用した簡単なサンプルプログラムを示す。このプログラムは、「Hello World」という文字列を出力するためのものだ。
if __name__ == "__main__":
print("Hello World")
このブロック(行のまとまり)におけるif __name__ == “__main__”は、このブロックを含むファイルがスクリプトやアプリケーションとして単体で実行される場合にのみ、2行目の「print」文が処理されるように制御する役割を果たす。printは、文字列を標準出力に出力する関数だ。このサンプルプログラムを単体で実行すると、2行目の文が処理される。別のPythonプログラムからモジュールとしてこのサンプルプログラムをインポートした場合、単純にインポートしただけでは2行目は処理されない。つまり開発者は、print文をif __name__ == “__main__”ブロックの下に配置することで、プログラムが呼び出された(インポートされた)時点でprint文が実行されることを防げる。
次回は、if __name__ == “__main__”の意味を読み解く。
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
9
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー