차밍이

[Python] 모듈 vs 스크립트 vs 패키지 차이점을 알아보자 본문

파이썬/기본 문법 정리

[Python] 모듈 vs 스크립트 vs 패키지 차이점을 알아보자

2022. 6. 4. 13:37
반응형

목차

 

 

     

     

    What is Module ?

    모듈은 여러 기능을 모아둔 파이썬 파일입니다.

    사용할 함수들을 정의해 놓은 파일을 의미합니다.

    예를 들어 우리는 평면도형의 면적을 구해 주는 함수들을 모아서 area라는 모듈을 만들었습니다.

    area.py

    PI = 3.14
    
    # 원의 면적을 구해 주는 함수
    def circle(radius):
        return PI * radius * radius  
    
    # 정사각형의 면적을 구해 주는 함수
    def square(length):
        return length * length

    import area 등의 방식으로 import해서 area 모듈의 circle 등의 함수를 사용할 수 있습니다.

     

    What is Script ?

    스크립트는 모듈에서 정의함 함수들을 사용하는 파일을 의미합니다.

    run.py

    import area
    
    x = float(input('원의 지름을 입력해 주세요: '))
    print('지름이 {}인 원의 면적은 {}입니다.\n'.format(x, area.circle(x)))
    
    y = float(input('정사각형의 변의 길이를 입력해 주세요: '))
    print('변의 길이가 {}인 정사각형의 면적은 {}입니다.'.format(y, area.square(y)))

    실제로 함수들을 사용하는 코드는 run 파일에 있습니다. 이 파일을 실행시키면 프로그램이 작동합니다.

    따라서 area 파일은 모듈이고 run 파일은 스크립트라고 할 수 있습니다.

     

    What is Package ?

    • 패키지는 모듈들을 모아 놓은 디렉토리를 의미
    • 각 모듈들이 모두 모여있음
    • __init__파일을 만들어줌, 필수는 아니지만 권장사항
    • 패키지만 import하면 패키지 내부의 모듈들이 같이 import되지 않음
    • __init__ 파일에서 from 패키지 import 내부 모듈 등의 방법으로 import해줘야함
    • 패키지에서 import * 만 하면 먹히지 않고 __all__ 설정을 해줘야함
    • __all__ = ['모듈명', '모듈명'] 방식으로 all을 가져올 때, 어떤 것들이 되는지 설정
    • 내부 모듈에서 모두 사용되는 경우 상수의 경우는 __init__에서 정의해 놓으면 좋음

    파이썬 패키지에 대한 추가적인 내용들 :  https://chancoding.tistory.com/206

    파이썬 package 구성을 위한 __init__ 과 __all__ 구성하기 : https://chancoding.tistory.com/207

    반응형

    관련된 글 보기

    Comments