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

Зміст:

Anonim

Що таке основна функція Python?

Основна функція Python є відправною точкою будь-якої програми. Під час запуску програми інтерпретатор python запускає код послідовно. Основна функція виконується лише тоді, коли вона запускається як програма Python. Він не буде запускати основну функцію, якщо вона імпортується як модуль.

Що таке функція def main () у Python? Щоб це зрозуміти, розглянемо наступний приклад коду

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

Тут ми отримали два фрагменти друку - один визначається в основній функції, це „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, вона потім прочитає оператор "якщо" і перевірить, чи __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 твердження == True, і скрипт в _main_will буде виконаний

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

  • __name __ = ім'я файлу модуля
  • якщо оператор == хибний, і сценарій у __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 (): інакше це дасть помилку відступу.