Основная функция Python & Пример метода: понимание __main

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

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

Что такое функция def main () в Python? Чтобы понять это, рассмотрим следующий пример кода

def main():print ("hello world!")print ("Guru99")

Здесь у нас есть две части print: одна определена в основной функции «Hello World», а другая независима, то есть «Guru99». Когда вы запускаете функцию def main ():

  • Распечатывается только "Guru99"
  • а не код «Hello World».

Это потому, что мы не объявили функцию вызова "if__name __ ==" __main__ ".

Важно, чтобы после определения основной функции вы вызывали код if__name __ == «__main__», а затем запускали код, только тогда вы получите вывод «hello world!» в консоли программирования. Рассмотрим следующий код

def main():print("hello world!")if __name__ == "__main__":main()print("Guru99")

В этом случае печатается Guru99.

Вот объяснение,

  • Когда интерпретатор Python читает исходный файл, он выполняет весь найденный в нем код.
  • Когда Python запускает «исходный файл» в качестве основной программы, он устанавливает для специальной переменной (__name__) значение («__main__»).
  • Когда вы выполняете основную функцию в python, она затем считывает оператор «if» и проверяет, равно ли __name__ __main__.
  • В Python «if__name __ ==« __main__ » позволяет запускать файлы Python либо как повторно используемые модули, либо как автономные программы.

Переменная __name__ и модуль Python

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

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

Теперь рассмотрим, код импортируется как модуль.

import MainFunctionprint("done")

Вот объяснение кода:

Как и C, Python использует == для сравнения, а = для присваивания. Интерпретатор Python использует основную функцию двумя способами

прямой ход:

  • __name __ = __ main__
  • if statement == True, и скрипт в _main_ будет выполнен

импортировать как модуль

  • __name __ = имя файла модуля
  • if statement == false, и скрипт в __main__ не будет выполнен

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

Приведенные выше примеры представляют собой коды Python 3, если вы хотите использовать Python 2, обратите внимание на следующий код

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

В Python 3 вам не нужно использовать if__name. Следующий код также работает

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

Примечание. Убедитесь, что после определения основной функции вы оставляете некоторый отступ и не объявляете код прямо под функцией def main ():, иначе будет выдана ошибка отступа.

Интересные статьи...