Python Tutorial: if __name__ == '__main__'
Вставка
- Опубліковано 21 бер 2015
- In this video, we will take a look at a common conditional statement in Python:
if _name_ == '__main__':
This conditional is used to check whether a python module is being run directly or being imported.
✅ Support My Channel Through Patreon:
/ coreyms
✅ Become a Channel Member:
/ @coreyms
✅ One-Time Contribution Through PayPal:
goo.gl/649HFY
✅ Cryptocurrency Donations:
Bitcoin Wallet - 3MPH8oY2EAgbLVy7RBMinwcBntggi7qeG3
Ethereum Wallet - 0x151649418616068fB46C3598083817101d3bCD33
Litecoin Wallet - MPvEBY5fxGkmPQgocfJbxP6EmTo5UUXMot
✅ Corey's Public Amazon Wishlist
a.co/inIyro1
✅ Equipment I Use and Books I Recommend:
www.amazon.com/shop/coreyschafer
▶️ You Can Find Me On:
My Website - coreyms.com/
My Second Channel - / coreymschafer
Facebook - / coreymschafer
Twitter - / coreymschafer
Instagram - / coreymschafer
#Python
Dude, it's incredible how simple this concept is when it's explained well. So many other resources had my head spinning about it, but just one 8 minute UA-cam video later, and I'm like "oh yeah well obviously."
p
Ppp
shoot yeah Sam I am.
same boat here I was like what the hell is a __main__ and why should I even care lol. But this makes so much sense. I especially understand someone else's stack exchange comment now about how this is really important for global variables.
I'm glad this is where I looked first. It looked intimidating at first, but he made it make sense.
Seems like a really intuitive feature.
You spoke my mind man….
Short answer: this set up gives you the option to run (or not run) a chunk of code when imported from another python file
I got that from the first 20 seconds, it's quite a simple concept for me and I thought up a lot of usecases. Pretty interesting, I don't think I'll watch the rest of the video
@@Dorumin you are so smart
@@pulpil10 Yeah, looking back on this comment it did seem pretty pompous lol, but it really was pretty familiar enough for me to grok like that
An example being a chess program that either runs on the command line if you run it directly or offers an API if imported
@@pulpil10 and you are right
@@Dorumin he explained nothing in the first 20 secs. Does patting yourself on the back make you feel any better?
Hi, Corey. If you ever wonder if you're making a difference in the world, then let me assure you that you are. Your videos make learning and using Python possible for those who watch them.
Beautiful work. Thank you very much.
Thanks!
@@coreymsyeah you helped us so much, thank u
I thought that geneticists are terrible at naming things but coders have their share of confusing nomenclature. Despite that, I got it because of this video! Thanks Corey!
Subscribed:
That was by far the best explanation I've found on UA-cam regarding this topic. I hope you continue to make videos.
I agree with you. I subscribed based on this video only.
no. this shit makes no sense
Tyrone Slothdrop I totally agree
Kevin, of course it doesn't make sense when you're braindead xD
Came to the comment section to say the same thing and I see I was beat to it.
The absolute clear and concise explanation I've seen on this in 5 years off and on of playing and working with Python. Well done!
Man, this is the first video where I actually get what this means. You are the GOAT, my friend.
I hope you know that even 6 years after posting your content is still helping beginners like me understand python better than anything else on the internet can! Thank you for your work, it's great! :)
9 years baby
man you are awesome, I started with the first video of Flask series and now I come here for understand the ifmain conditional.
thanks for your youtube channel, it will be for very much help, I am a new subscriber, like in all your videos.
Greetings from México.
I have found a way of conceptualizing this line of code in a way that (for me) may be easier to understand ...
Think of any single individual who is part of a family; we will call this person Xavier.
Let's talk about the relative terms we use when relating Xavier to the rest of his family.
His parents consider Xavier to be his SON.
His sister considers Xavier to be her BROTHER.
His second-tier relatives consider Xavier to be their COUSIN.
His grandparents consider him to be their GRANDSON.
Lastly, Xavier considers Xavier to be HIMSELF.
Xavier is still the same person in each of these relative relationships, but the relative term we use for him is different depending on who we are relating to.
So, when we write, "If __name__ == __main__" then we are effectively asking is: "If == HIMSELF"
If that code evaluates to TRUE, then we know that the program is running on its own - it is referring to itself.
== "HIMSELF"
If, however, that code evaluates to FALSE, then we know that the program is running as a component of another program.
That is, when you run the code "if __name__ == __main__" and it evaluates as FALSE, then it would be **metaphorically** equivalent to the return values being something like the following:
== "SON"
== "BROTHER"
== "COUSIN"
== "GRANDSON"
In other words, Xavier is not operating as HIMSELF, he is operating in relation to some other entity (a subcomponent of another program).
this made me confused as hell at the beginning ;) But is a good explanation too.
Wow thank you for the great explanation!!
it is more like if relative pronoun is not son, brother, etc.. then this is not the main "xavier" it is someone else IMPORTED to this file "family", correct me if im wrong
@@Mr.Jiggle I dont see a problem with your analogy. However, I also dont see a difference. I feel like you identified a difference with no real distinction. If Xavier is your nephew, he's not your child (you've imported him to your family). But if your approach helps you capture the concept, then run with it.
@@EV4UTube thanks, i was just making sure that i caught it right, i almost understand rn, thank you again
It's hard to believe that such a complicated concept can be explained like this. Cheers Cory, the great!
It's not that complicated, it's just terribly explained by others
I've literally been searching for this for the past two years. So simple yet I haven't seen anyone explain it better!
Haven't encountered an explanation as good as this. Thank you!
The world needs teachers like you.
What everyone else said: best explanation available. Thank you very much.
THIS MAKES SO MUCH SENSE. I spent an hour and a half today rewatching the video i learned it from and trying to get a grasp on it. Makes a lotta sense when you explain and show it the way you do. It's sort of like a validation prompt to see which file is being run to avoid duplicates etc.
I stuck for DAYS on this, THANK YOU SO MUCH for explaining the topic really clearly.
You are the only one whose lecture cleared my concept of __main__ in python.
i subscribed to your channel as soon as I understood the concept. thanks. keep uploading.
I considered "if __name__ == '__main__'' as some magical conditional check that triggered the main function for me, until I watched this video today. It's clear now. Your explanation was so clear and simple it made so much sense. Thanks.
Clearest one I ever found and reference my friends.
You rock. I'm so lucky, I looked down out of confusion while watching a tutorial because this was used (but I had no clue what it was).. my eyes just happened to see this video suggested, noice
I commend you on your teaching. I struggled with this concept for a long time, now it seems so simple.
This is the best explanation with EXAMPLES I've ever seen on this. This will help me tremendously. I salute you!
THE best explanation on the subject. Thanks Corey!!
Man, I was having a tough time understanding this concept. Thank you so much for this excellent explanation!
Sir, you will live 10,000 years!! Thank you for this informative video. Straight and to the point to which I could easily comprehend.
Your clarity is a godsend! Thank you for the instruction Schafer Sensei!
this seemingly complex topic can't be explained better that this, thanks a lot for clarifying it...
New to Python, I'm a C# developer, this video was exactly what I needed... just had to find the right one so it would click. THANK YOU!
Thank you very much - I have read and read on this subject but was getting totally confused. This video explains things so much better. Thank you very much. Your video is very explanatory and well done. :¬)
Thanks. Glad to hear you found it useful!
I agree!!!
this video clarified my doubts!!
UA-cam recommendations can apparently read my mind. Thanks for covering this topic!
I spent all morning finishing your OOP walkthrough videos and just ended with this. You, sir, are amazing.
okay, this person is so nice that he repeated the same thing without sounding repeatative at all. anyway, coming to the point, I think for average,slow,diverted students the video needs to be seen twice or whatever, there's got to be some kind of repeatation; but for focused students he's a great teacher
"So, I really hope this video was useful..."
Yes man... yes. Big YES. Damn it, thank you!
And it's not the first time you englightened me.
THE MOST cogent explanation of python import machinery available IMHO.
I have read a lot of articles on this specific topic, but none of them could make me understand this "if __name__==__main__" thing. Thanks for making it simple and understandable. By far the best one I've come through!
So simple, so elegant. Loved the way he explained this. I’m not gonna forget this thing in my entire life. Thank you
thos was the best and really honestly ever best explanation for this term I've been always trying to understand! Thanks so so much!!
You say: "Thank for wacht it"...
I say : Thank for teach me !!!!
You r right
NemCorrect:
You say: "Thanks for watching"
I say: "Thanks for teaching me!"
Always on service.
@@nemplayer1776 you did not get the joke!
@@ycombinator765 what is the joke? mind to elaborate?
r/whooosh
Corey, Man, you are an asset to humanity indeed, keep the good work.
I was terrified by this concept. But it was so simple. Thank you so much. People don't know how to teach, but you surely do...
If you want understand Python more clearly, check the video "What does it take to be an expert in Python" by PyData. It will give you an overview of how Python, specifically the "underscore" methods, works.
Finally it makes sense! Great video. So I understand now that the variable __name__ is different depending on whether the Python file is being run directly as a script or if it is imported somewhere else. If someone imports it, you can choose for the contents not to be run.
I found your explanation best........Thank you so much..!!
5 years later this video is still great. Thanks for this explanation, it clears up the concept perfectly.
Feels so good when you get to decipher __name__ = '__main__'. For years it was a huge mystery and blindly went with the flow. Thanks for the clarity distinguished mate!
perfectly explained ..thx a lot confusion removed ...
Finally got this. Thank you a lot!
What an excellent explanation -- I finally had that 'eureka!' moment with this topic after my brain failed to comprehend several other tutorials about this.
Finally. I had seen that scary double underscore several times and couldn't figure out what it was all about.
Thank you for the explanation.
Great! You're one of the greatest Python tutor on UA-cam
After three years used python, finally, i know why they use it :)) thanks so much
i've been roaming around for two days now. this is by far the best video i found. just subscribed!
I'm learning Python on my own and haven't reached the underscored 'thingies', but just watching this video, I understood the whole concept!! Thumbs up!! thx
Such a joy listening to your tutorials. The instructor in my paid course just keeps stuttering and mumbling to the point where I lose the will to live. You are a life saver, easily in the top 3 instructors online.
Thanks! I stutter and mumble a lot as well, but I edit all of that out because I don't want to waste the viewers time. Glad you enjoy the videos!
Thank you! The presentation of information is very clear!
Crystal clear and very helpful series of videos. You seem to acutely anticipate areas of confusion for an audience who is looking at the topic with a fresh pair of eyes and then proceed to clarify these doubts with simple but complete explanations and back it up with relevant examples. There are loads of online paid courses that fall far short from the level of your videos. Kudos. Wish someone could teach the hosts of instructors and trainers out there to emulate your capabilities, many of these courses seem to frustrate new students more than help them.
8 years later and it's still useful! Thank you so much for the amazing video :)!
Can't get better explanation than this🙏🏼
you can have waaaaaaaaay better explanations than this crap. He just wrote shit and didn’t bother to explain new stuff
@@heron22wading fuck off. Writing stuff is exactly what I needed.
Agree
@@dr.rijjaayaz8160 ___
@@dr.rijjaayaz8160 sgs
This is EPIC! Thanks a lot for making this video!
This is the best explanation for if __name__ == '__main__' that bothered me every time I saw it in a python code and tried to ignore it and escape from it.
Thousand thanks!!
You are quite literally the BEST explainer in the world! You could take any concept and get the most mentally incapable person to understand it. Great job!
2021: These are future-proof tutorials!
Thanks, clear and super helpful to this beginner!
It's funny how almost no tutorials I've seen cover this statement, given how incredibly common it is. Thank you very much!
Got recommended two of your videos, this and the working with json data in Python. Both very helpful videos with clear explanations. You earned yourself a new subscriber!
brilliant yet concise explanation. ThankYou
Concise and to the point. Nice :)
6 years ago most useful yet. Thank you
Hats off!
you exaplain it simply and clearly. I have always thought this main story was complicated but thanks to you, now I fully grasp it.
Subscribed: Man you explained very well!
Nice man. Thank you for share your knowledge.
This is the best tutorial so far. This thing is kinda tricky one. Sometimes i understand it but when someone ask me to make them understand, i start thinking maybe i did not get the concept, i have to check again.
OMG, this is the first time I am getting the concept using __main__, thank you so much for being a great teach!
Very helpfull video , thanks for upload this video
You just cured my anxiety
Cheers. Finally an explanation that made sense.
How others have failed to explain _that_ is beyond my imagination.
This guy explains the best...answers all the questions that appears in the mind while watching...keep going
Great explanation! I completed a graduate program in data science and none of the professors explained this as clearly.
Best explanation! 👏👏
See mine too. The channel has Python crash tutorials, and R beginning course tutorials. Step by step, sequentially. And you can download all the source files (can be found in the description of the video).
I came here because I was confused by a Udemy course I'm doing - your explanation was fantastic and simple. Thank you.
Holy crap I’ve been looking for a good explanation of this for forever. After not understanding when I first started learning I just skipped past it and always ignored it every time I saw it. But today I decided I was going to sit down and understand it and you made it clear. Thank you.
Clear conception.
And other puzzle is that I'm interested in learning how to execute and preview the result on sublime text after finishing python?
Probably figured out by now but sublime is a texteditor and not a IDLE.
CTRL-B
Change build system to python3 and then ctrl+b
When I found this out at first I couldn't see the usefulness of it but I realized that I could test my modules separately and not have it called within my main program.
Great explanation as always.
I was really confused the first time I watched the video. now I got it!! thanks man
the main confusion has finally been solved!!! Thank you so much
thanks mate great explanation
Thanks Corey this was wonderful!! Just a question when I can use this? Any example from any of your practical programs?
I mean you just use it in every programm (module) for the sake of importing it later on.
I love how you explain concepts with just 4-5 lines of code.
Perfect delivery! Very high info per minute.
Coming up from a C++ and Java world I use the "if __name__ == '__main__':" functionality almost religiously, even though most of the time I dont need it.
___name___
I'll be watching more of these videos for sure. My 14 year old son is learning to program in Python, but of course in my day Visual Basic was all the thing, so I have a hard time helping him even though I am very good with VB. The syntax is quite a bit different and the way people use Python is also quite a bit different. Even just the fact that logical statements like if, while, for etc. don't need to be terminated but rely on formatting is new to me. No more "end if". Visual Basic is more like Visual Pascal only without dynamic variables. Shows how old I am. And when did we go back to running stuff from the command prompt? It took me an hour to figure out how to get my computer to launch python that way even with the help of a video. Mind you I wasn't very familiar with setting system variables. I also really miss the "Step" debugger function in VB. I found something similar in Python but since half the time you are in imported code I have no idea what it is pointing at. My son would joke "oh look we are at line 1048 of my 50 lines of code". A video on how that works would be great.
Finally, an explanation that isn't cryptic and unintelligible for a poor beginner like me. Thanks a bunch!
Thank you, for clearing my 6 months pending doubt :)
This is god's work at its best. I struggled with this concept but thanks to this 8 minutes i can now continue with my coding.
I am from china my teacher never explain these things to us thank god i have find this video
Andrew Luo do you ask him to explain ?
@@Hephasto maybe he is introvert.
This is by far the explanation I’ve found. Thank you!
Hi Corey, many thanks...all crisp and clear....same sentiments as the previous viewer's comments ( below ).
Print (“thank u so much these tutorials have helped me so much :)”)
print("This will always be run")
you mean print*
@@chonkydog6262 ye im pretty sure i typed it on mobile, so it auto capitalized the first letter
Very well explained. When would you actually need to use this though? I am having trouble coming up with a good example..
The only thing I know if is testing. Define a function and test if it works properly.
I just started learning python. This was the first video that explained it to me. Thank you
Really liked your way of explanation!! Voice, pace, and clarity of information were perfect.