Pythonでよく見かける『if __name__ == ‘__main__‘』をわかりやすく解説
ฝัง
- เผยแพร่เมื่อ 8 ก.พ. 2025
- ■ ビジネス戦闘力が圧倒的に向上するプログラミングスクール 『code4biz』🧑💻
↓説明会はこちら↓
code4biz.jp/
※ 締切日:3月23日(水)23:59
※ 第2期開催は当分ありません
👨💻⬇︎無料LINE登録で近日限定コンテツ公開⬇︎👨💻
✅プログラミング学習効率を飛躍的に高める3つの考え方
✅必ず知っておくべきエラー解決法9選
✅プログラミングによる業務効率化の重要な考え方と成功事例3選! etc...
line.me/R/ti/p...
Pythonを学んだことがある皆さんであれば、一度は見たことがある『if _name__=='__main__'』 について説明します!まずは、__name_ を理解するところから始めていきます。
■ Twitter
/ 03imanyu
■ Udemy
www.udemy.com/...
#__name__ #Python
こんなにわかりやすく解説してくれるなんて。
神動画ですね。
そのようにおっしゃっていただき嬉しいです😂
これは本当に神動画。
参考にさせていただきます。
5年ほど分からず放置してたけど初めて分かりました。ありがとうございます!
ビックリするほど分かりやすかったです。
ありがとうございます。
本当にありがたい。
独学してて、調べる気にもならなかったやつ!
よかったです☺️
ダブルアンダースコアはダバダバと読むのが楽でおすすめ。
Python初学者ですが、あまり違和感を感じずに理解出来ました😂
if __name__ == "__main__":の意味が理解できました!、今までは良く分からない呪文のようなものでしたが、明日からは意識して使ってみます。ありがとうございます。
是非使ってください!!
めちゃくそわかりやすくて助かりました!
これからもお世話になります!
良かったです!!☺️
func()にif文入れないといけないのでは?と思ってる私が間違えてるのだろうか
モジュールをimportした瞬間にトップレベルが実行されるので、余計な処理が走るのを防止してます
今まで見てきたいろんな動画の中で、1番分かりやすかったです…ありがとうございます…
ありがとうございます!!😂
マルチプロセスでいくつかプロセス立てる際に、メイン処理以外でプロセスが乱立するのを防ぐ場合にも使いますね〜
おぉ、そうなんですね!!
教えていただきありがとうございます!!
モジュールの単体テストで使う時に有用ですね
プログラミング初心者です。__init__.pyの説明もお願いします。
今まで分からずに使っていましたが、やっと理解できました!
こんなに簡単だったとは驚きです(^o^)
ありがとうございました!!!!!!!!!!!!
意外と簡単ですよね☺️
sample2はsample1の関数funkを実行しているので、sample1のif分は関数funkの外にあり、sample2を実行しても何も変わらないと思うのですが合っていますか?
説明の本質ではないですが、これではsample2を最後に実行する意味がないかなと思ったので確認のためコメントさせていただきました。間違っていたらすいません。
if文の中身が実行されないことを確かめるためにsample2を実行しました☺️
sample2の中ではfunc()しか呼び出していないのでif文の部分は実行されていないのでは?という似た疑問を私ももったのでpythonで確認してみました。
もしsample1.pyのdef func(): で定義した後のprint()部分がif__name__==__main__ に囲われてないとsample2でimport sample1をしたところでprint()部分が実行されてしまいます。
import時点でsample1.pyファイルを直接実行するのと同じようにモジュールを実行しているんだと思われます。
そのためif文の有無でsample2のsample1.func()部分の実行結果は変わらないけれどimport sample1の部分の実行結果が変わってくるので、全体としてsample2の実行結果は変わってくるようです。
ちょうど気になってたから助かった。
つまりimport sample1 って頭に書くことと、sample1の中身を直接頭に書くことが同じってことかな。
importって自作関数を呼び出せるようにするためのものかと思ってたけど、importした時点でグローバルも含めて一度全部実行してるってことなのか
全部実行してんのかよ一番大事なとこでしょおおおおお
今まで何でこれ書いてあるんだろう?
何で書く必要あるんだろう?って思ってましたが
やっとわかりました。
mainで実行する場合と呼び出す場合で
使い分けできそうだなと感じました!
__name__と__main__のどっちが変数でどっちを”で囲うかごちゃごちゃになってたので助かります()
ごちゃごちゃになるやつですよね😅
単に自作の関数まとめただけのモジュールで他のファイルで呼び出す以外で使うつもりのないものには特に書かなくていいということなんですかね?
それともそういう場合でも何か書いておいた方がいいんでしょうか?
ありがとうございます!
基本、アンダースコアで挟まった形したやつ (__〇〇__←こういうやつ) 嫌い笑
わかります🥲😂
何を見てもちゃんと解説されていなかったのでようやく理解ができました!ありがとうございます
少し関係のないことですがいつも解説に使っている 文字を囲ったり クリックした際チカチカとしてるのは何のアプリを使っているのでしょうか
ScreenBrushです!!
@@imanyu_programming ありがとうございます。
このアプリのおかげですごくわかりやすくていつも助かっています!
応援してます
いつも動画拝見しております。
特にpythonを学び始めたとき、クラスの動画はとても参考になりました。
今回の動画の内容とは異なるんですが、私はいつもjupyterを使っています。この動画で使われているのは
なんというツールなのでしょうか。素人質問ですみません。
Visula Studio Codeです!
これわからんかった笑笑 おまじないかと思ってました
実は難しくないおまじないです!笑
8:10 ん、間違ってたらすみません。
python3 sample2.pyを叩くと、sample1.func()のみが呼び出されるので、そもそもsample1.pyのif文の中身がFalseになる以前に、そのif文を通らないですよね?
それって、わざわざif文で書かなくても、def func():の外にprint(“hogehoge”)を書いておけば、同じ結果になる気がします。
でも、あえてif文で書くのはおまじないというか慣習というか保守性というかそういう観点があるからなのでしょうか?
試してみたらわかると思いますが、import sample1をした段階でsample1.pyに記述されているプログラムが全て実行されるので同じ結果にはなりません。
sample2.pyを「import sample1」と1行だけ書いて
sample1.pyは「if __name__=='sample1':」のパターンもやった方が理解しやすいかなと思いました。
importの意味をちゃんと理解してないと、importはただのおまじないで、sample1.func()で、func関数を呼び出しただけに見えるので、sample1.pyのif __name__=='__main__':は呼び出されてないように感じてしまいそうです。
独学で学んでいますが、__◯◯__は敷居が高そうでスルーしていました。
目から鱗です!知ってしまえば、何てことないですね。
確かに敷居が高そうに見えますよね😂
マウスカーソルのエフェクト気になったんですけど何使ってるんですか?
僕も気になりました。コメントがしばらくたってますがわかりましたか?
スルーしてたけどやっと意味がわかりました
良かったです☺️
知っててもダブルアンダースコアがゲシュタルト崩壊する~。ダンダーと呼ぶのは知りませんでした。覚えておこう。
スルーしたと見せかけてちゃんと伏線回収しに来てた〜!
回収しました😁
なるほど。わかった。
画面上一時的に図形を描き表示させるソフトはなにをお使いでしょうか.作業のプロセスがよくわかります.
ScreenBrushです!
@@imanyu_programming 有難うございました。windowsなのですが,Epic Penが同じような機能が使えます.
pythonのプログラム(スクリプト)はモジュールとしても実行ファイルとしても使えるように作るのでコレでその切り替えをする訳ですね
フラスク起動とか
をそのif文の下に書けば
誤差動も防げると?
所在?を表すイメージなんですね
今さっそく見ながらソース書いてます^^
いいですね☺️
結局、これがないと
どのような危険があるのかがわからん
本筋と関係ないのですが、動画の中でマウスカーソルで四角で囲んだりしているのはどういうツールを使っていますか?
ScreenBrushです!!
メインのスクリプトだからmainなのか
略して「アンスコ」で、言う人結構多いので
ダブルアンスコで大丈夫ですよ
そのようにします😂
ダンダーネームと言っている