r/ProgrammerHumor May 27 '22

Meme Welcome to hassle free coding

Post image
2.2k Upvotes

305 comments sorted by

View all comments

Show parent comments

20

u/22draynor May 27 '22

9

u/[deleted] May 27 '22

[deleted]

19

u/[deleted] May 27 '22

Unless I’m mistaken (I’m not a python dev) that page is saying that there’s a variable python generates called “name” that will be the name of the module (file) where the code is executing. However, if the module is the entry point for the program (ie the script you ran to start the code executing) then that name variable will contain the value “main” instead.

Edit: Disclaimer: reddit has taken the two underscores before and after to mean I want to bold “main” and “name”, and I’m not going to bother to figure out how to correct that.

6

u/[deleted] May 27 '22

Unless I’m mistaken (I’m not a python dev) that page is saying that there’s a variable python generates called “__name__” that will be the name of the module (file) where the code is executing. However, if the module is the entry point for the program (ie the script you ran to start the code executing) then that __name__ variable will contain the value “__main__” instead.

Edit: Disclaimer: reddit has taken the two underscores before and after to mean I want to bold “main” and “name”, and I’m not going to bother to figure out how to correct that.

Edit 2: Fixed, thanks u/nukedkaltak

3

u/DeKokikoki May 28 '22

And to finish the explanation so that people don't have to open the link: if you want to import a function or a class or something from a module, python needs to run that module. If you haven't used the "if __name__ == '__main__': main()" construct, that means the main code of that imported module will also be run which is almost never what you want.