Для чего используется главная функция main

№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, то попросим ввести имя снова.

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

Источник

Функция main. Аргументы и возвращаемое значение

Даже если не передавать программе никаких значений — argc будет равен единице, т.к. argv[0] всегда содержит имя запущенной программы. Последний элемент массива параметров ( argv[argc] ) всегда равен нулю — это может использоваться при переборе параметров.

Часто делают так, что при запуске программы без аргументов она начинает диалог с пользователем, но если аргументы переданы — то использует их (не задает лишних вопросов):

Приведенная программа выводит на экран первое число из файла. При этом если имя файла передается в качестве аргумента, но если аргумент не задан — программа спросит требуемое имя у пользователя во время работы:

Для чего используется главная функция main. Смотреть фото Для чего используется главная функция main. Смотреть картинку Для чего используется главная функция main. Картинка про Для чего используется главная функция main. Фото Для чего используется главная функция main

Многие утилиты требуют определенное количество входных аргументов, например если приложение на вход всегда должно принимать входной и выходной файл — программа может для начала проверить количество параметров:

В последнем примере функция main() возвращает значение. Значением всегда является целое число, которое обрабатывается операционной системой — процесс, завершающийся с кодом ноль отработал без ошибок, во всех остальных случаях операционная система знает что произошла какая-то ошибка (при этом значения могут быть любыми, на них нет никакого стандарта). Нулевое значение функция main() вернет автоматически (при нормальном завершении программы) — это зафиксировано стандартом языка, все остальные значения рекомендуется именовать при помощи констант или перечислений ( enum ).

Источник

Основная функция в Python

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

Что такое основная функция в Python?

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

Вот почему существует специальный метод определения основного метода в программе Python, чтобы он выполнялся только тогда, когда программа запускается напрямую, а не выполняется при импорте, как модуль. Давайте посмотрим, как определить основную функцию в простой программе.

На изображении ниже показан результат, когда python_main_function.py выполняется как исходный файл.

Для чего используется главная функция main. Смотреть фото Для чего используется главная функция main. Смотреть картинку Для чего используется главная функция main. Картинка про Для чего используется главная функция main. Фото Для чего используется главная функция main

Основная функция, как модуль

Теперь давайте используем указанный выше исходный файл Python в качестве модуля и импортируем его в другую программу python_import.py.

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

Для чего используется главная функция main. Смотреть фото Для чего используется главная функция main. Смотреть картинку Для чего используется главная функция main. Картинка про Для чего используется главная функция main. Фото Для чего используется главная функция main

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

Операторы программы python выполняются построчно, поэтому важно определить метод main() сначала перед условием if для выполнения основного метода. В противном случае вы получите ошибку, так как NameError: имя ‘main’ не определено.

Источник

Функция main и выполнение программ

Все программы, написанные на языке C, содержат основную функцию, которая должна иметь имя main. Если код соответствует модели программирования Юникода, можно использовать версию функции main для многобайтовых символов с именем wmain. Функция main является начальной точкой для выполнения программы. Она обычно управляет выполнением программы, вызывая другие ее функции. Как правило, выполнение программы завершается в конце функции main, но по разным причинам это может случиться и в других местах программы. Иногда (возможно, при обнаружении некоторой ошибки) может потребоваться принудительно завершить программу. Для этого используйте функцию exit. Сведения о функции exit и пример ее использования см. в Справочнике по библиотеке времени выполнения.

Синтаксис

Примечания

Функции в исходном коде программы выполняют одну или несколько конкретных задач. Функция main может вызывать эти функции для выполнения соответствующих задач. Когда функция main вызывает другую функцию, она передает ей управление выполнением, и работа программы продолжается с первого оператора вызываемой функции. Функция возвращает управление в Main при выполнении инструкции или при достижении конца функции.

Описание версии main для расширенных символов см. в статье Использование wmain.

Источник

аргументы Main-Function-и-Command-Line-«> main функции и аргументов командной строки

main Функция не имеет объявления, так как она встроена в язык. Если это так, синтаксис объявления для main будет выглядеть следующим образом:

Стандартные аргументы командной строки

Аргументы для main обеспечения удобного анализа аргументов в командной строке. Типы для параметров argc и argv определяются языком. Имена argc и argv являются традиционными, но их можно называть по своему усмотрению.

Используются следующие определения аргументов.

Сведения о подавлении обработки в командной строке см. в разделе Настройка обработки командной строки C++.

Расширения, относящиеся к Microsoft

В следующих разделах описывается поведение, характерное для Майкрософт.

Как расширение Майкрософт, main w main функции и могут быть объявлены как возвращаемые void (без возвращаемого значения). Это расширение также доступно в некоторых других компиляторах, но его использование не рекомендуется. Он доступен для симметрии, если main не возвращает значение.

main w main Сигнатуры или позволяют дополнительному расширению для доступа к переменным среды, относящимся к Microsoft. это расширение также распространено в других компиляторах для Windows и UNIX систем. Имя envp является традиционным, но вы можете присвоить параметру среды любое имя. Ниже приведены эффективные объявления для списков аргументов, включающих параметр среды:

Main «>примеры аргументов main

В следующем примере показано, как использовать argc аргументы, argv и envp в следующих main случаях:

Анализ аргументов командной строки C++

Правила синтаксического анализа командной строки, используемые кодом Microsoft C/C++, специфичны для Microsoft. Код запуска среды выполнения использует эти правила при интерпретации аргументов, заданных в командной строке операционной системы:

Аргументы разделяются пробелами (пробел или табуляция).

Строка, заключенная в двойные кавычки, интерпретируется как один аргумент, который может содержать пробелы в char актерс. Строку в кавычках можно встроить в аргумент. Курсор ( ^ ) не распознается как escape- char актер или разделитель. Внутри заключенной в кавычки строки пара двойных кавычек интерпретируется как одна экранированная двойная кавычка. Если командная строка заканчивается до тех пор, пока не будет найдена закрывающая двойная кавычка, то все char прочитанные актерс будут выводиться в качестве последнего аргумента.

Символ двойной кавычки после обратной косой черты ( ) интерпретируется как литеральный символ двойной кавычки ( « ).

Символы обратной косой черты считаются литералами, если сразу за ними не стоит двойная кавычка.

Если двойная кавычка стоит после четного числа символов обратной косой черты, в массив argv помещается по одному символу обратной косой черты ( \ ) для каждой пары символов обратной косой черты ( \\ ), а сама двойная кавычка ( « ) интерпретируется как разделитель строк.

Пример синтаксического анализа аргументов командной строки

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

Результаты синтаксического анализа командных строк

В следующей таблице показаны примеры входных данных и ожидаемые выходные данные, иллюстрирующие применение правил из приведенного выше списка.

Входные данные командной строкиargv [1]argv [2]argv 3-5
«abc» d eabcde
a\\b d»e f»g ha\\bde fgh
a\\\»b c da\»bcd
a\\\\»b c» d ea\\b cde
a»b»» c dab» c d

Развертывание подстановочных знаков

Кроме того, компилятор Майкрософт позволяет использовать подстановочныйзнак актерс, вопросительный знак ( ? ) и звездочку ( * ), чтобы указать аргументы filename и Path в командной строке.

Дополнительные сведения о параметрах компоновщика для запуска среды выполнения см. в статье Параметры ссылок.

Настройка обработки командной строки C++

Программа может вызывать семейство подпрограмм spawn или exec в библиотеке среды выполнения C. В этом случае не следует подавлять подпрограмму обработки среды, так как она используется для передачи данных о среде из родительского процесса в дочерний.

Источник

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

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