🕹️AI_ 9기/Chapter 1 📚 4조 404

4조 스터디 발표회 준비 | 파이썬 - 패키지

highcat 2024. 11. 26. 14:45

패키지는 코드의 구조화와 재사용성을 높여
기능별로 모듈을 나누고, 더 효율적으로 확장도 가능하다.



1. 패키지란?

패키지는 여러 관련된 모듈을 하나의 디렉토리로 묶은 것이다.

 

  • 패키지는 모듈들을 관리하고, 프로젝트를 더 체계적으로 구성할 수 있게 해준다.
  • 패키지 안에는 여러 개의 .py 모듈 파일이 포함될 수 있다.

2. 패키지를 사용하는 이유는?

  1. 코드 관리 용이: 여러 모듈을 하나의 패키지로 묶어 기능별로 코드 관리가 용이하다.
  2. 네임스페이스 제공: 동일한 이름의 모듈을 다른 디렉토리에서 사용할 수 있게 해줘, 이름 충돌을 방지할 수 있다.
  3. 재사용성: 모듈을 여러 프로젝트에서 재사용할 수 있어 개발 효율성을 높여준다.
  4. 확장성: 프로젝트가 커져도 패키지를 사용하면 코드의 확장이나 수정이 쉬워지고, 동시에 작업하기도 유리하다.

3. 패키지 구조

  • my_package/는 패키지의 디렉토리.
  • __init__.py는 해당 디렉토리가 패키지임을 알려주는 역할을 한다.
    중요) 이 파일이 없으면 해당 디렉토리는 패키지로 인식되지 않는다.
  • module1.py, module2.py 등은 이 패키지에 포함된 모듈들이다.
  • sub_package/는 또 다른 하위 패키지이다.

4. 패키지 사용 방법

패키지의 모듈을 사용하는 방법은 import와 비슷하다.

위 구조에서 module1.py의 greet() 함수를 사용하려면 다음과 같이 불러올 수 있다

  • my_package 안의 module1.py 파일을 import 한다.
  • module1. greet
    - module1 안에 있는 greet 함수에 "라티"라는 인자를 넘겨서 호출




하위 패키지에 있는 모듈을 사용할 때는 다음과 같이 접근한다.

  • my_package 안에 들어있는 sub_package 안에  module3.py 모듈 파일을 import 한다.
  • module3. some_function ( )
    - module3 모듈 안에 있는 some_function 함수를 호출

5. __init__.py 역할

  • __init__.py 파일은 패키지의 초기화 파일로, 해당 디렉토리가 패키지임을 알려준다.
  • 이 파일은 비어 있을 수도 있지만, 패키지초기화하거나 모듈을 미리 불러오는 등의 작업을 할 수도 있다.
만약 __init__.py 파일이 없으면?
 ▶ 그 디렉토리를 일반 폴더로 취급해서 모듈이나 패키지로 인식하지 않는다.

 __init__.py를 넣는 이유

  • 패키지 초기화 : 패키지가 import될 때특정 함수자동으로 실행한다.
  • 편리한 import : __init__.py에 패키지를 import할 때 모듈을 따로 불러올 필요 없이 바로 사용할 수 있다.

 
 

 


 

 

 

#. 간단한 예제

1) 패키지 디렉토리 만들기

my_package 디렉토리 안에 module1.py와 module2.py 두 개의 모듈을 만들고, __init__.py를 추가한다.

2) module1.py와 module2.py 파일 작성

module1.py

module2.py

 

3) __init__.py 파일 작성

module1과 module2를 초기화할 수 있다

 

4) 패키지 사용하기

이제 my_package 패키지와 그 안의 모듈을 사용할 수 있다:


 

정리하자면
패키지는 여러 관련된 모듈을 포함하는 디렉토리이며
더 큰 프로젝트를 효율적으로 관리할 수 있게 해준다.