카테고리 없음

Mudule 과 시작점 알아보기

용스토리랜드 2023. 3. 22. 17:29
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

 

반응형