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 ():
- Само „Guru99-инчови разпечатки
- а не кода „Здравей свят!“
Това е така, защото не сме декларирали обаждането функция “if__name__== “__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__”).
- Когато изпълните основната функция в python, тя ще прочете израза „if“ и ще провери дали __name__ е равно на __main__.
- In Python „if__name__== „__main__“ ви позволява да стартирате Python файлове или като модули за многократна употреба или самостоятелни програми.
Защо да използваме функция main() в Python?
Python не ви задължава да пишете главна функция, но опитни разработчици използват такава в почти всеки нетривиален скрипт. Моделът 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 интерпретаторът използва основната функция по два начина
директно изпълнение:
- __име__=__основен__
- if statement == True и скриптът в _main_ще бъде изпълнен
импортиране като модул
- __name__= име на файл на модула
- if statement == false и скриптът в __main__ няма да бъде изпълнен
Когато кодът се изпълни, той ще провери за името на модула с „if“. Този механизъм гарантира, че основната функция се изпълнява само като директно изпълнение, а не когато се импортира като модул.
Горните примери са 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")
Забележка: Уверете се, че след като дефинирате основната функция, оставяте някакъв отстъп и не декларирате кода точно под функцията 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 оставя избора на вас, предлагайки същата яснота чрез конвенция, вместо чрез правило за компилация.




