Основна функція схожа на точку входу програми. Однак інтерпретатор Python запускає код прямо з першого рядка. Виконання коду починається з початкового рядка і йде рядок за рядком. Неважливо, де присутня основна функція, присутня вона чи ні.
Оскільки немаєmain()>у Python, коли команда на виконання програми Python надається інтерпретатору, код, який має рівень відступу 0, має бути виконано. Однак перед тим, як це зробити, він визначить кілька спеціальних змінних.__name__>є однією з таких спеціальних змінних. Якщо вихідний файл виконується як основна програма, інтерпретатор встановлює__name__>змінна мати значення__main__>. Якщо цей файл імпортується з іншого модуля,__name__>буде встановлено назву модуля.
__name__>це вбудована змінна, яка оцінює назву поточного модуля.
приклад:
# Python program to demonstrate> # main() function> > > print>(>'Hello'>)> > # Defining main function> def> main():> >print>(>'hey there'>)> > > # Using the special variable> # __name__> if> __name__>=>=>'__main__'>:> >main()> |
>
>
циклічний алгоритм планування
Вихід:
Hello hey there>
Коли вищевказана програма виконується, інтерпретатор оголошує початкове значення name як main. Коли інтерпретатор досягає оператора if, він перевіряє значення name, і коли значення if є істинним, він запускає основну функцію, інакше основна функція не виконується.
Основна функція як модуль
Тепер, коли ми імпортуємо сценарій Python як модуль,__name__>змінна отримує таке саме значення, як і назва імпортованого сценарію python.
приклад: Давайте розглянемо, що є два файли (File1.py і File2.py). File1 виглядає наступним чином.
# File1.py> > print>(>'File1 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File1 is being run directly'>)> else>:> >print>(>'File1 is being imported'>)> |
що означає google
>
>
Вихід:
File1 __name__ = __main__ File1 is being run directly>
Тепер, коли File1.py імпортується у File2.py, значення __name__ змінюється.
завантажити відео з youtube на vlc
# File2.py> > import> File1> > print>(>'File2 __name__ = %s'> %>__name__)> > if> __name__>=>=> '__main__'>:> >print>(>'File2 is being run directly'>)> else>:> >print>(>'File2 is being imported'>)> |
>
>
Вихід:
File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly>
Як видно вище, коли File1.py запускається безпосередньо, інтерпретатор встановлює__name__>змінна як__main__>і коли він запускається через File2.py шляхом імпорту, змінна __name__ встановлюється як ім’я сценарію python, тобто File1. Таким чином, можна сказати, що якщо __name__ == __main__ є частиною програми, яка запускається, коли сценарій запускається з командного рядка за допомогою команди на зразок Python File1.py.