If you are trying to close a question where someone should be using this idiom and isn't, consider closing as a duplicate of Why is Python running my module when I import it, and how do I stop it? instead. For questions where someone simply hasn't called any functions, or incorrectly expects a function named main to be used as an entry point automatically, use Why doesn't the main () function run when I start a Python script? Where does the script start running?. What the supposed duplicate doesn't answer: having a main () function (instead of just writing all the code into the "if name" block) is useful because it avoids accidentally creating global variables that could affect other functions. 知乎,中文互联网高质量的问答社区和创作者聚集的原创内容平台,于 2011 年 1 月正式上线,以「让人们更好的分享知识、经验和见解,找到自己的解答」为品牌使命。知乎凭借认真、专业、友善的社区氛围、独特的产品机制以及结构化和易获得的优质内容,聚集了中文互联网科技、商业、影视、时尚、文化等领域最具创造力的人群,已成为综合性、全品类、在诸多领域 ... The Python approach to " main " is almost unique to the language ("). The semantics are a bit subtle. The __name__ identifier is bound to the name of any module as it's being imported. However, when a file is being executed then __name__ is set to "__main__" (the literal string: __main__). This is almost always used to separate the portion of code which should be executed from the portions of code which define functionality. So Python code often contains a line like: #!/usr/bin/env python from ...