что такое name в python

Что делает if __name__ == «__main__»: в Python?

Вы наверняка не раз видели и даже использовали эту строку кода:

Знаете ли вы, что она делает и зачем она нужна? Давайте разберемся.

Когда интерпретатор Python читает исходный код из файла, он выполняет весь код внутри этого файла. Даже если это просто импорт библиотеки.

Однако бывают случаи, когда мы не хотим выполнять весь код в файле, а хотим импортировать класс или функцию.

Чтобы предотвратить такую ситуацию, интерпретатор Python предоставляет вам переменную __name__.

Эта переменная обычно содержит следующие значения:

Давайте рассмотрим пример.

Example.py

В качестве примера рассмотрим следующий код.

Специальные параметры

Посмотрим на содержимое __name__ в зависимости от способа выполнения модуля example.py.

Когда ваш модуль является основной программой

Если вы запустите свой модуль в качестве основной программы:

Интерпретатор присвоит значение __main__ переменной __name__. Точно так же, как если бы первая строка кода в вашем файле была:

Что произойдет, если вы запустите файл? Вы получите следующие сообщения:

Когда ваш модуль импортируется другим

Предположим, что example.py не является основным модулем, а импортирован из другого. Например, если мы импортируем его из консоли Python:

Интерпретатор будет искать ваш файл example.py и перед выполнением вашего модуля присвоит переменной name значение example, как если бы следующая строка была выполнена в начале вашего файла:

В качестве итога.

Вы можете использовать if name == ‘main‘: для защиты части кода. Таким образом, вы можете быть уверены, что блок будет выполнен только в том случае, если ваш модуль является основной программой.

Зачем это нужно?

Бывают случаи, когда вы хотите написать модуль Python, который может быть импортирован другими программами и может быть использован в качестве основной программы. Например:

Источник

№37 Функция __main__ / для начинающих

Лаконичность — важный элемент программирования. И вполне логично задавать вопрос о том, зачем разработчику добавлять лишние строки в программу. Функция main() требует дополнительных строк, но она служит определенной цели.

Что такое функция main()?

Main — это специальная функция, которая позволяет добавить больше логики в структуру программ. В Python можно вызвать функцию в нижней части программы, которая и будет запущена. Рассмотрим такой пример:

Можно увидеть, что выражение «Дайте печенье.» выводится до «Печенье вкусное!», потому что метод cookies() не вызывается вплоть до последней строки, а именно в этой функции хранится предложение «Печенье вкусное!».

Как создать функцию main

Теперь вызовем функцию в конце программы:

Можно запустить код:

Результат не поменялся. Но теперь сам код читать легче. Пусть в нем и больше строк (и одна дополнительная строка), вполне очевидно, что именно происходит:

Код не только чище, но и логичнее. Если вы пришли из другого языка, например, Java, но знаете, насколько это удобно.

Значение __name__

Этот код можно запустить следующим образом:

Предположим, что этот код был импортирован в качестве модуля в файл main.py :

if __name__ == __main__ в Python

Вы наверняка встречали следующую конструкцию в программах на Python в функции main :

Что она значит? В Python любая переменная, начинающаяся с двух символов нижнего подчеркивания ( __ ), является специальной. Это зарезервированные значения, которые выполняют определенную роль в программе.

Это значит, что строка выше вернет True только в том случае, если программа будет запущена прямо.

Если же ссылаться на файл как на модуль, то содержимое конструкции if не будет выполнено. Рассмотрим на примере.

Как использовать __name__ и __main__

Создадим новый скрипт на Python под названием username.py. В коде будем просить пользователя ввести его имя и проверять, не является ли его длина больше 5. Если символов не больше 5, то попросим ввести имя снова.

Начнем с определения глобальной переменной для хранения имени пользователя:

Источник

Переменная __name__ в Python

Введение в переменную _ _name_ _ и варианты ее использования в Python

что такое name в python. Смотреть фото что такое name в python. Смотреть картинку что такое name в python. Картинка про что такое name в python. Фото что такое name в python

Mar 17, 2019 · 2 min read

что такое name в python. Смотреть фото что такое name в python. Смотреть картинку что такое name в python. Картинка про что такое name в python. Фото что такое name в python

Скорее всего, вы встречали переменную __name__ при работе с кодом Python. Она выглядит следующим образом:

Рассмотрим пример использования этой переменной при создании модулей в Python.

Зачем использовать переменную _ _name_ _?

Переменная __name__ (два нижних подчеркивания перед и после) — это особая переменная в Python, получающая значение в зависимости от того, каким образом выполняется содержащийся в ней сценарий.

Иногда функции в одних сценариях могут пригодиться вам в других. В Python можно импортировать этот сценарий в качестве модуля для другого сценария.

Благодаря этой переменной можно решить, стоит ли запускать сценарий или импортировать функции, определенные в сценарии.

Какие значения может содержать переменная __name__?

Рассмотрим два случая использования.

Вариант 1 — Запуск сценария

При запуске nameScript.py последует нижеприведенный процесс.

что такое name в python. Смотреть фото что такое name в python. Смотреть картинку что такое name в python. Картинка про что такое name в python. Фото что такое name в python

Вариант 2 — Импорт сценария в другой сценарий

Код importingScript.py выглядит следующим образом:

что такое name в python. Смотреть фото что такое name в python. Смотреть картинку что такое name в python. Картинка про что такое name в python. Фото что такое name в python

В этом случае значение установлено на nameScript. Снова запускаются утверждения def для main и myFunction. Однако в этот раз установлено значение false, а функция main не вызывается.

В importingScript.py вызываем myFunction, которая выводит nameScript. NameScript становится известен для myFunction при определении функции.

Заключение

Мы рассмотрели варианты использования переменной __name__ при написании модулей. Эти модули также можно запустить самостоятельно, используя данные о том, как меняются значения этих переменных в зависимости от места их возникновения.

Источник

Использование if __name__ == «__main__» в Python

В данном руководстве мы рассмотрим для чего используется условие if name == «__main__» в Python, и в каких случаях оно нам может пригодиться.

Введение

Это стандартный код, который защищает пользователей от случайного вызова сценария, когда они не собирались этого делать, и его применение является хорошей практикой.

Это имеет значение для этих двух случаев использования:

В последнем случае обычно мы хотим только импортировать модуль, а затем позже в коде выполнить некоторые функции или использовать класс из этого файла. Именно здесь вступает в игру оператор if __name__ == «main», который работает как защитник.

Давайте выясним, почему и как это работает.

Специальная переменная

Когда интерпретатор Python читает исходный файл, он делает две вещи:

Давайте посмотрим на следующий пример, где мы правильно используем оператор if __name__ == «main»:

Первый случай использования

Запустите его как основную программу с помощью python testa.py.

Интерпретатор Python присвоит переменной __name__ жестко закодированную строку «main», и таким образом код в операторе if будет выполнен:

Второй случай использования

Импортируйте testa в качестве модуля.

Интерпретатор присвоит «testa» переменной __name__ в модуле testa. Таким образом, код в операторе if не будет выполнен, и func_one не запустится.

Без if __name__ == «main» в testa.py вывод был бы следующим:

Обычно это не то, что нам нужно. Поэтому, если вы хотите запустить код в файле, хорошей практикой будет обернуть весь этот код в оператор if __name__ == «main».

Заключение

В этой статье мы рассмотрели различные способы использования инструкции if __name__ == «main». Научились применять их на практики и теперь знаем как использовать их у себя в проекте.

Источник

Специальная переменная __name__ в Python

что такое name в python. Смотреть фото что такое name в python. Смотреть картинку что такое name в python. Картинка про что такое name в python. Фото что такое name в python

Когда интерпретатор Python читает файл, то сначала он устанавливает несколько специальных переменных. Затем выполняет код из файла.

Одной из таких переменных является __ name __.

В этой статье, Вы узнаете, как использовать специальную переменную __ name __, и почему она так важна.

Но давайте по порядку.

Файлы 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 и вставим следующий код:

Кроме того, немного изменим код в mode_one.py, добавив импорт модуля 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__

Часто в программах используется связка:

Здесь мы говорим программе, выполнить код если запущенный модуль есть основная программа.

Таким образом, сочетая __ name __ с условной конструкцией, мы можем управлять поведением наших модулей так, как нам это нужно.

что такое name в python. Смотреть фото что такое name в python. Смотреть картинку что такое name в python. Картинка про что такое name в python. Фото что такое name в python

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 0 ):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *