기술(Tech, IT)/파이썬(Python)

[Tech, Python] main method

Daniel803 2024. 3. 15. 00:30

파이썬의 스크립트 특성과 객체 지향 프로그래밍 모델 때문에 파이썬에서 "main" 메소드의 개념은 C나 C++의 main 함수와 완전히 다르다. C 또는 C++는 실행하기 위해 반드시 main 함수가 필요하지만 파이썬은 그렇지 않다. 그러나 스크립트를 독립 실행형 프로그램으로 실행할 때 시작점을 제공하고 스크립트를 다른 스크립트의 모듈로 가져올 때 실행해서는 안 되는 코드 부분을 구분하기 위해 C 또는 C++의 main 함수와 유사한 구조가 아래처럼 파이썬에서 자주 사용된다.

 

def main():
    # Your main code here
    print("Hello, world!")

if __name__ == "__main__":
    main()
  • def main()
    : 파이썬에서 main이라는 함수를 정의하는 부분이다. 이 함수에서 스크립트가 직접 실행될 때 (다른 스크립트의 모듈로 가져오지 않고) 실행할 코드가 포함되어 있다. 함수의 이름은 반드시 main일 필요가 없다.
  • if __name__ == "__main__":
    : 스크립트가 메인 main 프로그램으로 실행되고 있는지 여부를 확인하는 특수 조건이다. 위 코드에서 파이썬 스크립트가 직접 실행될 때 특수 변수 __name__을 "__main__"으로 설정했다. 스크립트를 다른 스크립트에서 import 하는 경우 __name__은 스크립트나 모듈의 이름이 된다. 이 메커니즘을 통해 스크립트는 실행 컨텍스트를 확인하고 모듈로 가져오지 않을 때만 특정 코드(예: main() 호출)를 실행할 수 있다.

아래는 위 파이썬 코드와 같은 결과를 보여주는 C 코드다.

#include <stdio.h>

int main() {
    printf("Hello, world!\n");
    return 0;
}

 

참고

- https://www.entity.co.kr/entry/51-Python-Main-%ED%95%A8%EC%88%98-%EB%B0%8F-%EB%A9%94%EC%86%8C%EB%93%9C-def-Main%EC%9D%98-%EC%9D%B4%ED%95%B4

'기술(Tech, IT) > 파이썬(Python)' 카테고리의 다른 글

[Tech, Python] \b (정규식)  (0) 2024.03.14
[Tech, Python] re.group()  (3) 2024.03.13
[Tech, Python] re.compile()  (0) 2024.03.08
[Tech, Python] re.escape  (0) 2024.03.02
[Python] raw strings  (0) 2024.01.07