함수나 변수나 클래스 등을 모아놓은 파이썬 파일
코드의 양이 길어지면 길어질수록 하나하나 스크롤을 하며 코드를 읽기에는 가독성이 떨어지며 파이썬의 장점을 많이 잃게 된다. (간결함, 가독성)
사용 방법은 간단하다.
import
해준다.저번 포스트에서 사용한 함수들을 모듈화 시켜보려고 한다.
파이썬 파일을 만든다
코드를 옮긴다.
import
한다.
사용한다.
사용 방법은 간단하다. 하지만 주의해야할 점이 있다.
모듈화 시킨 함수나 클래스를 메인 파이썬 파일에서도 실행하고, 모듈화 시킨 파일에서도 실행을 시킨다면 메인 코드 동작 시 두번 실행이 된다.
# 메인 파이썬 파일
import module
fish1 = module.MarketGoods(size=20, price=500)
fish1.show()
#모듈 파이썬 파일
fish1 = MarketGoods(size=20, price=500)
fish1.show()
결과
이러한 점을 막기 위해 사용하는게 __name__ == "__main__"
이다.
__name__ == "__main__"
파이썬 __name__
을 __main__
으로 바꾸는 것이다. 그렇기 때문에 __name__
이 __main__
인 경우에만 동작한다.
print(__name__) # ------- 1
if __name__ == "__main__":
print(__name__) # ------- 2
fish1 = MarketGoods(size=20, price=500)
fish1.show()
이 상태로 동작을 메인 파이썬 파일을 동작을 시켜보면 print - 1
부분의 출력은 module
이 나온다.(파이썬 파일 이름이 module.py 라서)
print - 2
부분의 출력은 __main__
이 나온다.
따라서 __name__
이 다르기 때문에, 메인 파이썬 파일을 실행시켜도 모듈 파이썬 파일의 실행 구문이 동작하지 않는 것이다.
이 부분은 알아두면 나중에 유용하게 사용할 수 있을 것 같아서 포스팅 해놓는다.