Главная функция Python выполняется только тогда, когда она запускается как программа на Python. Как вы знаете, мы также можем импортировать программу на Python как модуль, в таком случае главный метод Python не должен выполняться.
Главная функция Python
Главная функция является точкой входа любой программы. Однако интерпретатор Python выполняет код исходного файла последовательно и не вызывает никакой метод, если он не является частью кода. Но если он является прямой частью кода, то он будет выполнен при импорте файла как модуля. Вот почему существует специальная техника определения главного метода в программе на Python, чтобы он выполнялся только тогда, когда программа запускается непосредственно, и не выполняется при импорте как модуль. Давайте посмотрим, как определить главную функцию Python в простой программе. python_main_function.py
print("Hello")
print("__name__ value: ", __name__)
def main():
print("python main function")
if __name__ == '__main__':
main()
-
Когда программа на Python выполняется, интерпретатор Python начинает выполнение кода внутри нее. Он также устанавливает несколько неявных значений переменных, одним из которых является
__name__
, значение которого устанавливается как__main__
. -
Для основной функции Python нам необходимо определить функцию и затем использовать условие
if __name__ == '__main__'
для выполнения этой функции. -
Если исходный файл Python импортируется как модуль, интерпретатор Python устанавливает значение
__name__
в имя модуля, поэтому условие if вернет false, и основной метод не будет выполнен. -
Python дает нам гибкость выбирать любое имя для основного метода, однако наилучшей практикой является называть его методом main(). Нижеприведенный код вполне подходит, однако не рекомендуется.
def main1(): print("основная функция Python") if __name__ == '__main__': main1()
Ниже показан вывод при выполнении исходного файла в виде исходного файла python_main_function.py
.
Основная функция Python как модуль
Теперь давайте использовать указанный выше исходный файл Python в качестве модуля и импортировать его в другую программу. python_import.py
import python_main_function
print("Done")
Теперь, когда выполняется указанная выше программа, производится следующий вывод.
Hello
__name__ value: python_main_function
Done
Обратите внимание, что первые две строки выводятся из исходного файла python_main_function.py
. Обратите внимание, что значение __name__
отличается, и, следовательно, метод main не выполняется. Обратите внимание, что операторы программы Python выполняются построчно, поэтому важно сначала определить метод main(), прежде чем выполнять условие if для выполнения главного метода. В противном случае вы получите ошибку NameError: name 'main' is not defined
. Вот и все, что касается основной функции Python. Ссылка: Документация по Python
Source:
https://www.digitalocean.com/community/tutorials/python-main-function