Специальная переменная __name__ в Python
Когда интерпретатор Python читает файл, то сначала он устанавливает несколько специальных переменных. Затем выполняет код из файла.
Одной из таких переменных является __ name __.
В этой статье, Вы узнаете, как использовать специальную переменную __ name __, и почему она так важна.
Но давайте по порядку.
Модули Python.
Файлы Python называются модулями, и обозначаются расширением .py файл. Модуль может определять функции, классы и переменные.
Так что, когда интерпретатор обрабатывает модуль, переменная __ name __, будет установлена как __ main __ если модуль, который выполняется является основной программой.
Но если код импортирует модуль из другого модуля, то переменная __ name __ будет установлена на имя этого модуля.
Рассмотрим на примере вышесказанное. Создадим модуль Python с именем mod_one.py и вставим в него следующий код:
print("Module one __name__ is: {0}".format(__name__))
Запустив этот файл, вы увидите именно то, о чем говорили. Переменная __ name __ устанавливается как __ main __:
# вывод
Module one __name__ is: __main__
Теперь добавим еще один файл с именем mod_two.py и вставим следующий код:
print("Module two __name__ is: {0}" .format(__name__))
Кроме того, немного изменим код в mode_one.py, добавив импорт модуля mod_two:
import mod_two
print("Module one __name__ is: {0}".format(__name__))
Запуск нашего кода mod_one еще раз покажет, что переменная __ name __ в mod_one не изменилась и по-прежнему остается установленной в __ main __. Но теперь переменная __ name __ для mod_two задается как имя ее модуля, следовательно, mod_two.
# вывод
Module two __name__ is: mod_two
Module one __name__ is: __main__
Но запустите mod_two напрямую, и вы увидите, что его имя установлено на _ main_:
Module two __name__ is: __main__
Часто в программах используется связка:
if __name__ = 'main':
main()
Здесь мы говорим программе, выполнить код если запущенный модуль есть основная программа.
Таким образом, сочетая __ name __ с условной конструкцией, мы можем управлять поведением наших модулей так, как нам это нужно.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.