Mudule 과 시작점 알아보기
if __name__ == '__main__':
코드
위의 코드는 무엇을 뜻하는 것일까 ?
현재 스크립트 파일이 실행되는 상태를 파악하기 위해 사용한다.
output :
위와 같이 hello.py 스크립트 (모듈) 을 만들고, main.py 파일에서 hello 모듈을 가져온 뒤 __name__ 변수를 호출하면 main.py 파일의 __name__ 이 __main__ 인 것을 알 수 있고 hello 모듈은 import 하면서 print 부분이 실행되므로 hello.py 파일의 __name__ 변수가 호출되는데 __name__ 이 hello 인 것을 알 수 있다.
즉, __name__ 은 모듈의 이름이 저장되는 변수이며 import 로 모듈을 가져왔을 때, 모듈의 이름이 들어간다. 하지만 파이썬 인터프리터로 스크립트 파일을 직접 실행했을 때는 모듈의 이름이 아니라 '__main__' 이 들어가게 된다.
반대로 hello.py 에서 __name__ 변수를 print 하면 __main__ 이 출력된다.
즉, 어떤 스크립트 파일이든 시작점도 될 수 있고, 모듈도 될 수 있다. 그래스 __name__ 변수를 통해 현재 스크립트 파일이 시작점인지 모듈인지 판단한다.
if __name__ == '__main__' : 와 같은 코드는 __name__ 변수 값이 __main__ 인지 확인하는 코드이며, 현재 스크립트 파일이 프로그램의 시작점이 맞는지 판단하는 작업이다. 즉, 스크립트 파일이 메인 프로그램으로 사용될 때와 모듈로 사용될 때를 구분하기 위한 용도.
# 스크립트 파일로 실행하거나 모듈로 사용하는 코드 만들기
def add(a, b) :
return a + b
def mul(a, b) :
return a * b
if __name__ == '__main__' : # 프로그램의 시작점일 때만 아래 코드 실행. 모듈로 가져다 쓸 때는 실행 안 함.
print(add(1, 4))
print(mul(3, 5))
실행결과 5, 15
import 해서 사용할 시 함수에 원하는 값을 넣어서 사용하면 된다.
import calc
calc.add(50, 60) # 110
clac.mul(50, 60) # 3000