Content · Programming · Python

Python __name__ and if __name__ == '__main__'

When a module is launched as the main program, its __name__ is __main__. When another module imports it, __name__ is its importable module name. A main guard keeps command-line behavior from running during.

2 views Published Oct 17, 2026 Updated Oct 18, 2026 Admin

This guide explains __name__ and if __name__ == '__main__' through a focused Python example. You will learn the behavior to expect, why it matters in a real program, and how to recognize the common mistakes before applying it in your own project.

What You Will Learn


When a module is launched as the main program, its __name__ is __main__. When another module imports it, __name__ is its importable module name. A main guard keeps command-line behavior from running during import.

When and Why to Use It


The following example focuses on a practical use of __name__ and if __name__ == '__main__'.

Step-by-Step Example


def greet_user(name):
    return f"Hello, {name}"

if __name__ == "__main__":
    print(greet_user("Sam"))

Understanding the Example


Saving and running this file prints Hello, Sam. Importing the file allows another script to call greet_user without automatically printing that greeting.

Expected Output


Hello, Sam

Important Behavior and Edge Cases


Avoid placing interactive input and long-running work at module top level when the module will also be imported.

Try It Yourself


Create helper.py with a main guard, then import it from app.py.

Common Beginner Mistakes


  • Avoid placing interactive input and long-running work at module top level when the module will also be imported.
  • Assuming that an import has no initialization effects or that every environment resolves modules in the same way.
  • Skipping the practice step and assuming the example covers every input. Test at least one normal case and one edge case relevant to this topic.

Key Takeaways


  • When a module is launched as the main program, its __name__ is __main__.
  • Saving and running this file prints Hello, Sam.
  • Apply the technique deliberately, checking its documented input requirements and failure behavior before integrating it into a larger project.
Share this resourceSend this page to someone who may find it useful.