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

ความคิดเห็น • 74

  • @minenao2002
    @minenao2002 3 ปีที่แล้ว +16

    こんなにわかりやすく解説してくれるなんて。
    神動画ですね。

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว

      そのようにおっしゃっていただき嬉しいです😂

  • @ストレートハッピーすとはぴ
    @ストレートハッピーすとはぴ ปีที่แล้ว +2

    これは本当に神動画。
    参考にさせていただきます。

  • @yujiro103
    @yujiro103 7 หลายเดือนก่อน +2

    5年ほど分からず放置してたけど初めて分かりました。ありがとうございます!

  • @Libertas011
    @Libertas011 2 ปีที่แล้ว +2

    ビックリするほど分かりやすかったです。
    ありがとうございます。

  • @obake_12
    @obake_12 3 ปีที่แล้ว +3

    本当にありがたい。
    独学してて、調べる気にもならなかったやつ!

  • @あひーじょー
    @あひーじょー 3 ปีที่แล้ว +20

    ダブルアンダースコアはダバダバと読むのが楽でおすすめ。

  • @パトラ-t3i
    @パトラ-t3i 6 หลายเดือนก่อน +1

    Python初学者ですが、あまり違和感を感じずに理解出来ました😂

  • @hanamoto1122
    @hanamoto1122 3 ปีที่แล้ว +1

    if __name__ == "__main__":の意味が理解できました!、今までは良く分からない呪文のようなものでしたが、明日からは意識して使ってみます。ありがとうございます。

  • @猫にゃんこ-z4w
    @猫にゃんこ-z4w 3 ปีที่แล้ว

    めちゃくそわかりやすくて助かりました!
    これからもお世話になります!

  • @soshina3
    @soshina3 11 หลายเดือนก่อน +4

    func()にif文入れないといけないのでは?と思ってる私が間違えてるのだろうか

    • @ish_pack
      @ish_pack 4 หลายเดือนก่อน

      モジュールをimportした瞬間にトップレベルが実行されるので、余計な処理が走るのを防止してます

  • @wcc23579
    @wcc23579 3 ปีที่แล้ว

    今まで見てきたいろんな動画の中で、1番分かりやすかったです…ありがとうございます…

  • @iKami-jv9ml
    @iKami-jv9ml 3 ปีที่แล้ว +8

    マルチプロセスでいくつかプロセス立てる際に、メイン処理以外でプロセスが乱立するのを防ぐ場合にも使いますね〜

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว +1

      おぉ、そうなんですね!!
      教えていただきありがとうございます!!

  • @satoru3893
    @satoru3893 3 ปีที่แล้ว +3

    モジュールの単体テストで使う時に有用ですね

  • @ShinyaYaginuma
    @ShinyaYaginuma 3 ปีที่แล้ว +1

    プログラミング初心者です。__init__.pyの説明もお願いします。

  • @KG-ni6zp
    @KG-ni6zp 3 ปีที่แล้ว +12

    今まで分からずに使っていましたが、やっと理解できました!
    こんなに簡単だったとは驚きです(^o^)
    ありがとうございました!!!!!!!!!!!!

  • @関口明紀-m9n
    @関口明紀-m9n 3 ปีที่แล้ว +11

    sample2はsample1の関数funkを実行しているので、sample1のif分は関数funkの外にあり、sample2を実行しても何も変わらないと思うのですが合っていますか?
    説明の本質ではないですが、これではsample2を最後に実行する意味がないかなと思ったので確認のためコメントさせていただきました。間違っていたらすいません。

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว

      if文の中身が実行されないことを確かめるためにsample2を実行しました☺️

    • @itomaru0203
      @itomaru0203 3 ปีที่แล้ว +8

      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の実行結果は変わってくるようです。

    • @ignis___fatuus
      @ignis___fatuus 3 ปีที่แล้ว +1

      ちょうど気になってたから助かった。
      つまりimport sample1 って頭に書くことと、sample1の中身を直接頭に書くことが同じってことかな。

    • @source_master
      @source_master 3 ปีที่แล้ว +1

      importって自作関数を呼び出せるようにするためのものかと思ってたけど、importした時点でグローバルも含めて一度全部実行してるってことなのか

    • @sota-v6l
      @sota-v6l 11 หลายเดือนก่อน +2

      全部実行してんのかよ一番大事なとこでしょおおおおお

  • @akahanaman
    @akahanaman 2 ปีที่แล้ว

    今まで何でこれ書いてあるんだろう?
    何で書く必要あるんだろう?って思ってましたが
    やっとわかりました。
    mainで実行する場合と呼び出す場合で
    使い分けできそうだなと感じました!

  • @tsubasa_km
    @tsubasa_km 3 ปีที่แล้ว +1

    __name__と__main__のどっちが変数でどっちを”で囲うかごちゃごちゃになってたので助かります()

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว

      ごちゃごちゃになるやつですよね😅

  • @itomaru0203
    @itomaru0203 3 ปีที่แล้ว +2

    単に自作の関数まとめただけのモジュールで他のファイルで呼び出す以外で使うつもりのないものには特に書かなくていいということなんですかね?
    それともそういう場合でも何か書いておいた方がいいんでしょうか?

  • @名謎
    @名謎 3 ปีที่แล้ว +3

    ありがとうございます!
    基本、アンダースコアで挟まった形したやつ (__〇〇__←こういうやつ) 嫌い笑

  • @ryusei8833
    @ryusei8833 3 ปีที่แล้ว +2

    何を見てもちゃんと解説されていなかったのでようやく理解ができました!ありがとうございます
    少し関係のないことですがいつも解説に使っている 文字を囲ったり クリックした際チカチカとしてるのは何のアプリを使っているのでしょうか

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว +1

      ScreenBrushです!!

    • @ryusei8833
      @ryusei8833 3 ปีที่แล้ว

      @@imanyu_programming ありがとうございます。
      このアプリのおかげですごくわかりやすくていつも助かっています!
      応援してます

  • @dollshacky802
    @dollshacky802 3 ปีที่แล้ว +1

    いつも動画拝見しております。
    特にpythonを学び始めたとき、クラスの動画はとても参考になりました。
    今回の動画の内容とは異なるんですが、私はいつもjupyterを使っています。この動画で使われているのは
    なんというツールなのでしょうか。素人質問ですみません。

  • @わけわかめ-z6l
    @わけわかめ-z6l 3 ปีที่แล้ว +1

    これわからんかった笑笑 おまじないかと思ってました

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว

      実は難しくないおまじないです!笑

  • @ttjapans
    @ttjapans 3 ปีที่แล้ว +1

    8:10 ん、間違ってたらすみません。
    python3 sample2.pyを叩くと、sample1.func()のみが呼び出されるので、そもそもsample1.pyのif文の中身がFalseになる以前に、そのif文を通らないですよね?
    それって、わざわざif文で書かなくても、def func():の外にprint(“hogehoge”)を書いておけば、同じ結果になる気がします。
    でも、あえてif文で書くのはおまじないというか慣習というか保守性というかそういう観点があるからなのでしょうか?

    • @コメントとアカウント永久保存版
      @コメントとアカウント永久保存版 3 ปีที่แล้ว

      試してみたらわかると思いますが、import sample1をした段階でsample1.pyに記述されているプログラムが全て実行されるので同じ結果にはなりません。

  • @tskikoh
    @tskikoh 3 ปีที่แล้ว +3

    sample2.pyを「import sample1」と1行だけ書いて
    sample1.pyは「if __name__=='sample1':」のパターンもやった方が理解しやすいかなと思いました。

    • @tskikoh
      @tskikoh 3 ปีที่แล้ว +1

      importの意味をちゃんと理解してないと、importはただのおまじないで、sample1.func()で、func関数を呼び出しただけに見えるので、sample1.pyのif __name__=='__main__':は呼び出されてないように感じてしまいそうです。

  • @masamasa8996
    @masamasa8996 3 ปีที่แล้ว

    独学で学んでいますが、__◯◯__は敷居が高そうでスルーしていました。
    目から鱗です!知ってしまえば、何てことないですね。

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว

      確かに敷居が高そうに見えますよね😂

  • @user-nx5iz6wi7t
    @user-nx5iz6wi7t 2 ปีที่แล้ว +1

    マウスカーソルのエフェクト気になったんですけど何使ってるんですか?

    • @Da-fk3gm
      @Da-fk3gm 2 ปีที่แล้ว

      僕も気になりました。コメントがしばらくたってますがわかりましたか?

  • @ゲーム用-t7z
    @ゲーム用-t7z 3 ปีที่แล้ว

    スルーしてたけどやっと意味がわかりました

  • @heropu-65
    @heropu-65 3 ปีที่แล้ว +1

    知っててもダブルアンダースコアがゲシュタルト崩壊する~。ダンダーと呼ぶのは知りませんでした。覚えておこう。

  • @kenkenmath
    @kenkenmath 3 ปีที่แล้ว

    スルーしたと見せかけてちゃんと伏線回収しに来てた〜!

  • @鳩でもわかるC
    @鳩でもわかるC 3 ปีที่แล้ว

    なるほど。わかった。

  • @hiroyan2023
    @hiroyan2023 3 ปีที่แล้ว +3

    画面上一時的に図形を描き表示させるソフトはなにをお使いでしょうか.作業のプロセスがよくわかります.

    • @imanyu_programming
      @imanyu_programming  3 ปีที่แล้ว

      ScreenBrushです!

    • @hiroyan2023
      @hiroyan2023 3 ปีที่แล้ว +1

      @@imanyu_programming 有難うございました。windowsなのですが,Epic Penが同じような機能が使えます.

  • @和歌山みかん-z7p
    @和歌山みかん-z7p ปีที่แล้ว

    pythonのプログラム(スクリプト)はモジュールとしても実行ファイルとしても使えるように作るのでコレでその切り替えをする訳ですね

  • @モコモコ-y2y
    @モコモコ-y2y 3 ปีที่แล้ว

    フラスク起動とか
    をそのif文の下に書けば
    誤差動も防げると?

  • @anais5378
    @anais5378 ปีที่แล้ว +1

    所在?を表すイメージなんですね

  • @AIxCE
    @AIxCE 3 ปีที่แล้ว +1

    今さっそく見ながらソース書いてます^^

  • @エルチキンライス-b9k
    @エルチキンライス-b9k 7 หลายเดือนก่อน

    結局、これがないと
    どのような危険があるのかがわからん

  • @tomoyukimiyata9298
    @tomoyukimiyata9298 3 ปีที่แล้ว

    本筋と関係ないのですが、動画の中でマウスカーソルで四角で囲んだりしているのはどういうツールを使っていますか?

  • @yn2814
    @yn2814 3 ปีที่แล้ว +2

    メインのスクリプトだからmainなのか

  • @yositune7940
    @yositune7940 3 ปีที่แล้ว

    略して「アンスコ」で、言う人結構多いので
    ダブルアンスコで大丈夫ですよ

  • @sasensui1000
    @sasensui1000 ปีที่แล้ว

    ダンダーネームと言っている