Основна функція Python

У цьому підручнику ми дізнаємося, як використовувати атрибут __name__ програми Python для його динамічного запуску в різних контекстах.

Яка основна () функція в Python?

Деякі мови програмування мають спеціальну функцію, main()яка називається точкою виконання програмного файлу. Однак інтерпретатор Python запускає кожен рядок послідовно зверху файлу і не має явної main()функції.

Python пропонує інші домовленості для визначення точки виконання. Один з них - використання main()функції та властивості __name__ файлу python.

Що таке __name__ у Python?

Змінна __name__ - це спеціальна вбудована змінна Python, яка відображає ім'я поточного модуля.

Він має різні значення в залежності від того, де ми виконуємо файл Python. Давайте розглянемо приклад.

Запуск файлу Python як сценарію

Припустимо, у нас є файл Python, який називається helloworld.py, із таким вмістом:

 print(__name__) 

Якщо ми запускаємо helloworld.py з командного рядка, то він виконується як сценарій Python. Ми можемо запустити програму Python, використовуючи таку команду:

$ python helloworld.py

Коли ми запускаємо програму як сценарій, значення змінної __name__ встановлюється на __main__. Тож результат наступної програми буде:

 __основна__ 

Запуск файлу Python як модуля

Ми також можемо запустити файл Python як модуль. Для цього нам потрібно імпортувати цей файл до іншої програми Python. Давайте розглянемо приклад.

Припустимо, у нас є файл Python, який називається main.py, в тому ж каталозі, що і файл heloworld.py. Він має такий зміст:

 import helloworld 

Коли ми запустимо цей файл, ми отримаємо такий результат:

 Привіт Світ 

Тут ми бачимо, що імпорт модуля також запускає весь код у файлі модуля.

Але ми бачимо, що замість відображення __main__ програма відображає ім'я модуля, тобто helloworld.

Це тому, що в контексті запуску файлу Python як модуля ім'я самого модуля присвоюється змінній __name__.

Використання if умовно з __name__

Тепер, коли ми зрозуміли, як змінні __name__ присвоюються значення, ми можемо використовувати ifумовне речення для запуску одного і того ж файлу Python по-різному в різних контекстах.

Давайте розглянемо приклад.

Припустимо, ми змінимо вміст файлу helloworld.py на такий:

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

Тепер, коли ми запускаємо його як скрипт через командний рядок, результат буде:

 Привіт Світ 

Однак, коли ми запускаємо його як модуль, імпортуючи його у файл main.py , вихід не відображається, оскільки main()функція не викликається.

Тут ми створили спеціальну main()функцію у файлі helloworld.py . Він виконується лише тоді, коли програма запускається як самостійний сценарій, а не як імпортований модуль.

Це стандартний спосіб явного визначення main()функції в Python. Це один з найпопулярніших випадків використання змінної __name__ файлу Python.

Цікаві статті...