Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Понимание главной функции в Python: практическое руководство по def main()

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

Главная функция в Python обозначает точку входа программы. Когда скрипт выполняется напрямую, интерпретатор запускает код последовательно. Код внутри def main() выполняется только если скрипт является основным модулем, а не при импорте в другом месте.

Рассмотрим наглядный пример.

Пример 1: Определение main()

def main():
    print("Hello World!")
    print("Guru99")

Запуск этого файла напечатает только Guru99. Строка Hello World! остаётся внутри main() и никогда не вызывается.

Чтобы выполнить main() при запуске скрипта как основной программы, нужно защитить его:

if __name__ == "__main__":
    main()

Теперь скрипт ведёт себя как ожидается.

Пример 2: Правильная защита

def main():
    print("Hello World!")
if __name__ == "__main__":
    main()
print("Guru99")

При запуске этого файла консоль покажет:
Hello World!
Guru99

Почему это работает? Интерпретатор устанавливает специальную переменную __name__ в "__main__" при прямом выполнении файла. Защита проверяет это условие перед вызовом main().

Роль __name__ и модулей

Понимание __name__ необходимо для написания повторно используемого кода.

def main():
    print("hello world!")
if __name__ == "__main__":
    main()
print("Guru99")
print("Value in built variable name is: ", __name__)

Прямой запуск файла печатает два сообщения и __name__ как "__main__". Если импортировать этот скрипт как модуль:

import mainfunction
print("done")

вы увидите только done, а __name__ отразит имя модуля, поэтому main() не выполнится автоматически.

Кратко:

Python 3 не требует if __name__ == "__main__": для простых скриптов, но использование защиты — лучшая практика, особенно если файл может быть переиспользован. В Python 2 синтаксис тот же, но print-инструкции отличаются:

def main():
    print "Hello World!"
if __name__ == "__main__":
    main()
print "Guru99"

В Python 3 также можно написать:

def main():
    print("Hello World!")
main()
print("Guru99")

Помните: всегда соблюдайте правильный отступ после строки def main():, чтобы избежать ошибок.

Python

  1. Lambda-функции в Python: практическое руководство по анонимным функциям
  2. Генераторы в Python: эффективная итерация и продвинутые сценарии
  3. Замыкания в Python: как вложенные функции захватывают переменные
  4. Декораторы в Python: улучшайте функции экспертными техниками
  5. Мастерство метода strip() в Python: подробное руководство и практические примеры
  6. Python len(): практическое руководство по измерению длины объектов
  7. Мастерство метода String.find() в Python: синтаксис, примеры и альтернативы
  8. Освоение лямбда-функций Python: практические примеры и лучшие практики
  9. Функция round() в Python: подробное объяснение с практическими примерами
  10. Освоение функции map() в Python: синтаксис, примеры и лучшие практики