Python 메인 함수 이해하기: def main() 실전 가이드
Python 메인 함수란?
메인 함수는 Python 프로그램의 진입점. 스크립트 직접 실행 시 인터프리터가 코드 순차 실행. def main() 안 코드는 스크립트가 주 모듈일 때만 실행, 다른 곳에서 임포트 시 실행 안 됨.
명확한 예제로 살펴보기.
예제 1: main() 정의
def main():
print("Hello World!")
print("Guru99")
이 파일 실행 시 Guru99만 출력. Hello World! 줄은 main() 안에 있어 호출되지 않음.
main()을 스크립트가 메인 프로그램으로 실행될 때 실행하려면 가드 필요:
if __name__ == "__main__":
main()
이제 스크립트 예상대로 동작.
예제 2: 올바른 가드
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
이 파일 실행 시 콘솔 표시:
Hello World!
Guru99
왜 작동하나? 인터프리터는 파일 직접 실행 시 특수 변수 __name__을 "__main__"로 설정. 가드가 이 조건 확인 후 main() 호출.
__name__과 모듈의 역할
__name__ 이해는 재사용 가능 코드 작성에 필수.
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ", __name__)
파일 직접 실행 시 두 메시지와 __name__이 "__main__"로 출력. 이 스크립트 모듈로 임포트 시:
import mainfunction
print("done")
done만 보이고 __name__은 모듈명 반영돼 main() 자동 실행 안 됨.
요약:
- 직접 실행:
__name__ == "__main__" → main() 실행.
- 모듈로 임포트:
__name__ != "__main__" → main() 건너뜀.
Python 3는 간단 스크립트에 if __name__ == "__main__": 필수 아님, 하지만 파일 재사용 가능성 있을 때 가드 사용이 모범 사례. Python 2도 문법 동일하나 print 문 다름:
def main():
print "Hello World!"
if __name__ == "__main__":
main()
print "Guru99"
Python 3에선 이렇게도 작성 가능:
def main():
print("Hello World!")
main()
print("Guru99")
기억: def main(): 줄 뒤 적절한 들여쓰기 유지해 에러 방지.