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

Почему у Python нет основной функции?

Почему я не рекомендую его, нет никаких сомнений в том, что нет так называемой основной записи Fu … Tagged с Python.

Нет сомнений в том, что в Python нет так называемой основной функции входа, но в Интернете часто есть статьи, в которых упоминаются «Основная функция Python» и «Предложите написать основную функцию».

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

В этой истории мы поговорим о том, почему у Python нет основной функции?

Прежде чем начать тему, давайте ответим на эти два вопроса:

  • Что означает так называемая «основная функция»?
  • Почему некоторые языки программирования должны заставлять писать основную функцию?

Некоторые языки программирования используют основную функцию в качестве записи выполнения программы, такой как C/C ++, C#, Java, Go, Rust и т. Д., Которые имеют особые значения:

  • Это основное имя функции является обязательным, что означает, что должна быть основная функция.
  • Там может быть не более одной основной функции, что означает, что запись в программу уникальна.
  • Формат грамматики имеет особые требования с относительно фиксированным шаблоном.

Почему вы должны заставить основную функцию входа?

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

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

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

  • Python – это интерпретированный язык, то есть язык сценариев. Процесс запуски сверху вниз, линия по линии, что означает, что его начальная точка известна.
  • Каждый файл .py – это исполняемый файл, который можно использовать в качестве файла входа всей программы, подразумевает гибкую запись программы, и не должно соблюдать соглашения
  • Иногда запуск проекта Python не указывал файл входа (командная строка более распространена, например, « python -m http.server 8000 »), это может быть присутствие main.py Файл, он находится в пакете как «файл» для выполнения операций.

Таким образом, это означает, что питон языка сценариев отличается от составленного языка. Будь то на уровне одного модуля (то есть файл .py) или на уровне пакета, состоит из нескольких модулей, он может выбрать гибкий метод выполнения , В отличие от других языков, которые не могут быть реализованы без четко определенной записи.

Другими словами, Python не нужно предусматривать, что программист должен определить единую запись (будь то функция или класс или что -то в этом роде) на уровне синтаксиса.

Некоторые люди могут быть смущены, потому что они часто видят или пишут следующий код сами:

# main file
def main():
    ……
if __name__ == '__main__':
    main()

Разве это не главная функция Python? Я верю, что многие из нас так думают!

Нет, это не так

За исключением того, что имя функции является «основным», оно не имеет половины цента с ортодоксальной основной функцией, которую мы представили ранее, ни обязательны, ни обязательно определяют порядок выполнения программы. Без этого это не вызовет каких -либо грамматических проблем.

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

Они могут подумать, что такие названные функции легче запомнить.

Причина, по которой они хотят написать Если имя == ' Главный ' может захотеть показать, что main () работает только тогда, когда текущий сценарий будет напрямую выполняется, и не хочет запускать, когда он импортируется в другие модули.

Тем не менее, я лично не рекомендую этот способ написания

Наиболее очевидный пример: существует всего несколько десятков строк кода или просто файл скрипта, который реализует простую функцию (маленький гусеница, рисуя картинку с черепахой и т. Д.), Но все они написаны в одном и том же стиле как прежде.

Не рекомендуется писать if name__ по следующим причинам.

  • Прежде всего, если есть только один файл, потому что нет возможности экспорта.
  • Во -вторых, если есть несколько файлов, очень отрицательно отменяет это предложение в файле входа (main.py). Теоретически, его содержание не должно быть экспортировано для использования в других модулях, поскольку это отправная точка.
  • Наконец, также не рекомендуется писать это суждение в не вводных файлах с несколькими файлами, так как наиболее можно сделать,-это написать некоторые из этих тестовых кодов. Тем не менее, тестовый код должен быть разделен и записан в специальном каталоге или файле.

Каждый раз, когда я вижу этот громоздкий код, не задумываясь, мне некомфортно. Зачем писать это, если оператор? Если возможно, вы должны разделить основную функцию, даже не завершая ее на функцию!

Подводить итоги

  • Переломайте инерционное мышление и напишите подлинный код. Основная функция входа уникальна для некоторых языков и не должна использоваться в Python. Вы должны понимать характеристики языка сценариев и написать простой и элегантный стиль.
  • Используйте main.py вместо main (). Поскольку единица выполнения программы Python является файлом скрипта, а не функцией или классом, рекомендуется назвать файл входа main.py, а внутренние функции определяются в соответствии с требованиями.
  • Если возможно, используйте main.py в качестве файла входа. Этот файл прост в использовании в сочетании с параметром «-m» в командной строке.

Как вы относитесь к прочтению этой статьи? Вы любите использовать это, если оператор? Дайте мне знать в комментариях по причине 😊

Оригинал: “https://dev.to/pawangeek/why-doesn-t-python-have-a-main-function-2lfp”