__name__ question

I am learning testing. And there was this code

if __name__ == '__main__': unittest.main()

I understand name is set when interpreter starts to read the code. And main means the main program that run.
Then I wonder, what defines a script to be a main program? I see scripts that import modules and still are said to be main programs.

You must select a tag to post in this category. Please find the tag relating to the section of the course you are on E.g. loops, learn-compatibility

When you ask a question, don’t forget to include a link to the exercise or project you’re dealing with!

If you want to have the best chances of getting a useful answer quickly, make sure you follow our guidelines about how to ask a good question. That way you’ll be helping everyone – helping people to answer your question and helping others who are stuck to find the question and answer! :slight_smile: