Основна функция на 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__.

Използване, ако е условно с __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.

Интересни статии...