본문 바로가기

Programming/Python

[Python] import문 사용법(패키지, 모듈 차이)

주의) 이 게시물에는 Chat gpt에게 질문하여 얻은 내용들이 포함되어 있습니다.

패키지, 모듈, 클래스의 차이

  • 패키지(Package): 여러 모듈을 포함하는 디렉토리 구조를 가진 Python의 코드 집합입니다. 패키지는 모듈을 조직화하고, 관련된 기능을 묶어 관리할 수 있게 해줍니다. 예를 들어, scipy는 다양한 서브모듈들을 포함하는 패키지입니다.
  • 모듈(Module): Python 파일로, 함수, 클래스, 변수 등을 포함할 수 있는 독립적인 코드 단위입니다. 모듈은 특정 기능을 수행하기 위한 코드 집합입니다. 예를 들어, scipy.linalg는 scipy 패키지 내의 선형 대수 기능을 제공하는 모듈입니다. 또한, Toeplitz 함수는 모듈 내에 정의된 함수입니다.

import로 불러왔을 때의 차이

1. import scipy

  • 설명: scipy 패키지 전체를 임포트합니다. 패키지의 모든 모듈에 접근할 수 있지만, 각 모듈을 사용할 때는 전체 경로를 지정해야 합니다.
import scipy

# scipy 패키지에서 linalg 모듈의 toeplitz 함수를 사용하려면:
A = scipy.linalg.toeplitz([1, 2, 3])
print(A)

 

2. import scipy.linalg

  • 설명: scipy.linalg 모듈만 임포트합니다. 선형 대수 관련 함수와 클래스에 직접 접근할 수 있습니다. scipy.linalg 내의 모든 기능을 사용할 수 있지만, 다른 모듈에 접근하려면 다시 임포트가 필요합니다.
import scipy.linalg

# scipy.linalg 모듈의 toeplitz 함수를 직접 사용:
A = scipy.linalg.toeplitz([1, 2, 3])
print(A)

** 주의) 이 경우, 그냥 >>> A = linalg.toeplitz([1, 2, 3]) 라고 하면 오류 발생. 꼭 함수의 전체 경로를 적어줘야 함.

 

3. from scipy.linalg import toeplitz

  • 설명: scipy.linalg 모듈에서 toeplitz 함수만 임포트합니다. 다른 기능에 접근하려면 별도로 임포트해야 합니다. 코드가 간결해지고, 해당 함수만 사용할 경우 유리합니다.
from scipy.linalg import toeplitz

# toeplitz 함수를 바로 사용:
A = toeplitz([1, 2, 3])
print(A)