Когда вы импортируете модуль, все в нем «запускается». Это означает, что классы и функциональные объекты создаются, устанавливаются глобальные переменные и выполняются операторы печати. *)
Обычной практикой является включение операторов, предназначенных только для выполнения, когда модуль запускается напрямую , в блок if, такой как этот:
if __name__ == "__main__":
print "123"
Теперь, если вы запустите модуль как скрипт, __name__
будет установлен на "__main__"
, поэтому будет напечатано "123"
. Однако, если вы импортируете модуль откуда-то еще, __name__
в вашем случае будет "FirstModule"
, а не "__main__"
, поэтому все, что находится в блоке, не будет выполнено.
*) Обратите внимание, что если вы снова импортируете тот же модуль, он будет , а не снова «запускаться». Python отслеживает импортированные модули и просто повторно использует уже импортированный модуль во второй раз. Это делает трюки C / C ++ такими, как вложение тела файла заголовка с помощью операторов IFNDEF
, чтобы убедиться, что заголовок импортируется только один раз в python.