('__main__' versus the actual import name) code example

Example 1: python if name == main example

# It's as if the interpreter inserts this at the top
# of your module when run as the main program.
__name__ = "__main__"

Example 2: explained if name main python

# Suppose this is foo.py.

print("before import")
import math

print("before functionA")
def functionA():
    print("Function A")

print("before functionB")
def functionB():
    print("Function B {}".format(math.sqrt(100)))

print("before __name__ guard")
if __name__ == '__main__':
    functionA()
    functionB()
print("after __name__ guard")