Python Основна функція та метод: Розуміння def Main()
⚡ Розумний підсумок
Python Функція main позначає початкову точку, з якої інтерпретатор починає виконувати програму. Визначена за допомогою def main() та в поєднанні з захисним оператором if __name__ == “__main__”, вона відділяє код модуля повторного використання від виконання окремого скрипта.

Що таке Python Основна функція?
Команда Python основна функція є початковою точкою будь-якої програми. Коли програма виконується, Python Інтерпретатор виконує код послідовно. Функція main виконується лише тоді, коли вона виконується як Python програма. Основна функція не буде виконана, якщо її імпортовано як модуль.
У чому полягає функція def main(). PythonЩоб зрозуміти це, розглянемо наступний приклад коду, який є частиною ядра Python Програмування основи:
def main() Приклад 1
def main():
print ("Hello World!")
print ("Guru99")
Тут ми отримали два фрагменти виводу: один визначено в основній функції «Hello World!», а інший є незалежним, тобто «Guru99”. Коли ви виконуєте функцію def main ():
- Тільки «GuruРоздруківки 99 дюймів
- а не код «Hello World!»
Це тому, що ми не оголошували виклик функція “if__name__== “__main__”.
Важливо, щоб після визначення функції main ви викликали код if__name__== “__main__”, а потім запустили код, лише тоді ви отримаєте результат “hello world!” в консолі програмування. Розглянемо наступний код
def main() Приклад 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruУ цьому випадку друкується 99.
Ось пояснення,
- Коли Python інтерпретатор читає вихідний файл, він виконає весь код, знайдений у ньому.
- Коли Python запускає «вихідний файл» як основну програму, він встановлює спеціальну змінну (__name__) на значення («__main__»).
- Коли ви виконуєте функцію main у python, вона зчитує оператор if і перевіряє, чи __name__ дорівнює __main__.
- In Python “if__name__== “__main__” дозволяє запускати Python файли або як багаторазові модулі або окремі програми.
Навіщо використовувати функцію main() у Python?
Python не змушує вас писати функцію main, проте досвідчені розробники використовують її майже в кожному нетривіальному скрипті. Шаблон def main() впорядковує файл і робить код безпечним для повторного використання. Ось основні причини його використання:
- Чітка точка входу: Функція main() повідомляє будь-якому читачеві, де саме починається програма, тому логіку легко зрозуміти.
- Багаторазові модулі: Code охороняється умовою if __name__ == “__main__” виконується лише під час безпосереднього виконання, тому інші файли можуть імпортувати ваші функції без побічних ефектів.
- Локальний охоплення: Змінні, створені всередині main(), залишаються локальними, що дозволяє уникнути випадкових зіткнень з глобальними іменами в інших частинах модуля.
- Легше тестування: Ізоляція логіки в main() дозволяє набору тестів викликати її безпосередньо та перевірити результат.
- Спільна конвенція: Функція main() — це широко розпізнаний сигнал точки входу в програму, який покращує зручність підтримки в різних командах.
Коротше кажучи, функція 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 MainFunction
print("done")
Ось пояснення коду: Як C, Python використовує == для порівняння, а = для призначення. Python інтерпретатор використовує функцію 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"
In Python 3, вам не потрібно використовувати if__name. Наступний код також працює
def main():
print("Hello World!")
main()
print("Guru99")
Примітка: Переконайтеся, що після визначення функції main ви залишили деякий відступ і не оголошували код безпосередньо під функцією def main(): інакше це призведе до помилки відступу.
Як передавати аргументи командного рядка до Python Функція main()
Функція main() — це природне місце для обробки вхідних даних, які користувач передає в командному рядку. Python зберігає ці значення у списку sys.argv, який надає стандартний модуль sys. Перший елемент, sys.argv[0], – це назва скрипта, а кожне значення після нього – це аргумент, наданий користувачем.
Наступний приклад зчитує та друкує аргументи командного рядка зсередини функції main():
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Якщо зберегти файл як script.py та запустити python script.py альфа-бета, програма виводить назву скрипта та список ['alpha', 'beta']. Оскільки значення надходять всередині main(), логіка залишається організованою та легкою для тестування.
Ось кілька практичних порад щодо роботи з командним рядком:
- Виріжте назву скрипта: Використовуйте sys.argv[1:] для читання лише аргументів, введених користувачем.
- Використовуйте argparse для реальних інструментів: Вбудований модуль argparse аналізує прапорці, опції та довідковий текст набагато безпечніше, ніж читання sys.argv вручну.
- Повернути код виходу: Завершіть виклик як sys.exit(main()), щоб повернене значення main() стало статусом завершення процесу.
- Перевірте заздалегідь: Перевірте кількість та тип аргументів на початку main() перед запуском решти програми.
Цей шаблон перетворює простий скрипт на надійний інструмент командного рядка, зберігаючи при цьомуping кожен крок всередині однієї, тестованої функції main().
Python Функція main() проти інших мов програмування
Розробники з C, C++або Java часто очікують обов'язкову функцію main(). Python працює по-іншому, оскільки це інтерпретована мова, тому інтерпретатор просто виконує файл з верхнього рядка до нижнього. Функція main() у Python тому це радше умовність, ніж правило.
- C, C++, C# і Java: Функція main() є обов'язковою точкою входу. Середовище виконання викликає її автоматично, і в кожній програмі може бути лише одна така функція.
- Python: Функція main() не потрібна. Виконання починається з першого рядка файлу, а def main() виконується лише тоді, коли ваш код її викликає.
- Охоронець: Блок if __name__ == “__main__” надає Python мета, подібна до скомпільованої main() шляхом позначення коду, який має виконуватися лише тоді, коли файл є головною програмою.
Тож, хоча інші мови застосовують точку входу main(), Python залишає вибір за вами, пропонуючи таку ж ясність завдяки домовленості замість правила компілятора.




