Автор оригинала: Bert Carremans.
Введение в _ _Name_ _ переменную и его использование в Python
Вы, скорее всего, видели __name__ Переменная, когда вы проходили через код Python. Ниже вы видите пример фрагмента кода, как это может выглядеть:
if __name__ == '__main__': main()
В этой статье я хочу показать вам, как вы можете использовать эту переменную для создания модулей в Python.
Почему используется переменная _ _Name_ _ _?
__name__ Переменная (два подчеркивания до и после) представляет собой специальную переменную Python. Это получает его значение в зависимости от того, как мы выполняем содержащий сценарий.
Иногда вы пишете скрипт с функциями, которые также могут быть полезны в других сценариях. В Python вы можете импортировать этот скрипт в виде модуля в другом скрипте.
Благодаря этой специальной переменной вы можете решить, хотите ли вы запустить скрипт. Или что вы хотите импортировать функции, определенные в скрипте.
Какие значения могут содержать переменную __name__?
Когда вы запускаете свой скрипт, __name__ Переменная равен __main__ Отказ При импорте содержащего сценарий он будет содержать имя сценария.
Давайте посмотрим на эти два случая использования и опишите процесс с двумя иллюстрациями.
Сценарий 1 – Запустите скрипт
Предположим, мы написали сценарий namescript.py следующим образом:
def myFunction(): print 'The value of __name__ is ' + __name__
def main(): myFunction()
if __name__ == '__main__': main()
Если вы запустите NameScript.py, следующий ниже.
Прежде чем все остальный код работает, __name__ Переменная установлена на __main__. После этого Главная и Myфункция Записываются операторы. Поскольку состояние оценивается к True, называется основной функцией. Это, в свою очередь, называет myфункцию. Это отпечатывает значение __main__ Отказ
Сценарий 2 – Импортируйте скрипт в другом скрипте
Если мы хотим повторно использовать мою регистрацию в другом скрипте, например Importingscript.py мы можем импортировать namescript.py как модуль.
Код в Importingscript.py может быть следующим:
import nameScript as ns
ns.myFunction()
У нас тогда два сфера: один из Importingscript и второй объем TeamScript Отказ На рисунке вы увидите, как он отличается от первого случая использования.
В Importingscript.py __name__ Переменная установлена на __main__. Импортируя Teamscript, Python начинает искать файл, добавив .py на имя модуля. Затем он запускает код, содержащийся в импортированном файле.
Но на этот раз это устанавливается на INTESPRIST. Снова операторы DEF для основной и справедливой регистрации. Но теперь состояние оценивает ложь и главное не вызывается.
В Importingscript.py мы называем myфункцию, которая выводит INTEScript. INTEScript известен к моей функции, когда эта функция была определена.
Если вы будете печатать __name__ В ImportingScript это выводило бы __main__ Отказ Причиной этого является то, что Python использует значение, известное в объеме импортных групп.
Заключение
В этой короткой статье я объяснил, как вы можете использовать __name__ Переменная для записи модулей. Вы также можете запустить эти модули самостоятельно. Это может быть сделано путем использования того, как значения этих переменных изменяются в зависимости от того, где они происходят.