Каждый модуль в Python имеет атрибут, который называется name . Значение атрибута name равно ' main ' при непосредственном запуске модуля. В противном случае значение name является именем модуля.
Небольшой пример для краткого объяснения.
#Script test.py
apple = 42
def hello_world():
print("I am inside hello_world")
if __name__ == "__main__":
print("Value of __name__ is: ", __name__)
print("Going to call hello_world")
hello_world()
Мы можем выполнить это непосредственно как
python test.py
выход
Value of __name__ is: __main__
Going to call hello_world
I am inside hello_world
Теперь предположим, что мы вызываем вышеуказанный скрипт из другого скрипта
#script external_calling.py
import test
print(test.apple)
test.hello_world()
print(test.__name__)
Когда вы выполните это
python external_calling.py
выход
42
I am inside hello_world
test
Итак, приведенное выше говорит само за себя, что при вызове test из другого скрипта цикл name в test.py не будет выполняться.