파이썬은 객체지향언어지만, 함수와 클래스가 필수는 아니다. 그래서 파이썬에는 main 함수가 딱히 필요 없다.
간혹 다른 사람들의 코드를 보다보면

이러한 코드를 볼 수 있는데, 이게 무엇인지 알아보았다.

__name__

name은 python 내부변수로 사용된다.
실행되는 파일에서만 name == “main” 값은 참이 되므로 실행 파일에서만 코드가 실행된다.

예제

한 디렉토리 안에 A.pyB.py 파일을 생성했다.

A.py

실행시키면,

이처럼 sum(4,5) 의 결과값인 9 가 출력된다.

B.py

이번에는 if __name__ == "__main__": 조건문 없이 출력시켜보았다.

역시 9가 출력된다.

다음은 A.pyB.py 를 import 할 C.pyD.py 를 생성한다.

C.py

A.py를 import 하고 5 와 6을 더해보았다.

A.py 에 있는 print(sum(4,5)) 은 실행되지 않고
C.py 에 있는 print(A.sum(5,6)) 만 출력되었다.

마지막으로 확인하기 위해, B.py 를 import 한 D.py를 생성해 보겠다.

D.py

출력해보면 B에 있는 4와5의 합, 그리고 D에 있는 5와6의 합 모두 출력되는 것을 볼 수 있다.

정리

이처럼 if __name__ == "__main__": 의 조건문 뒤의 코드는, 해당 조건문이 있는 파일에서만 실행되고, 다른 파일에 import 했을 시 실행되지 않는다.


Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 12288 bytes) in /home1/leechoong/public_html/wp/wp-includes/wp-db.php on line 1972