Рубрики
Без рубрики

Что в (Python’s) __name__?

Автор оригинала: 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__ Переменная для записи модулей. Вы также можете запустить эти модули самостоятельно. Это может быть сделано путем использования того, как значения этих переменных изменяются в зависимости от того, где они происходят.