3.4 모듈과 패키지 #Writing Idiomatic Python 3.1

oen·2022년 10월 5일
0

1. __init__.py 파일 -> 패키지 인터페이스 단순화

__init__.py 로 디렉토리를 패키지로 만듦

__init__.py이 포함할 수 있는 유용한 코드:

  • how a apackage is initialized
  • what names are visible

하나의 패키지에 수십 개의 모듈이 있는 경우, 실제로 클라이언트에서 사용되는 건 한 두개 뿐.
-> __init__.py 사용
-> 모든 패키지의 모듈을 init 모듈을 통해 사용할 수 있음
-> 클라이언트는 깊은 레벨에 있는 모듈도 main 모듈에 선언된 것처럼 참조할 수 있음

👎

# 만약 gizmo 디렉토리가 빈 __init__.py를 가지고 있으면
# 아래처럼 import 해야함
# Gizmo와 GizmoHelper 모두 클라이언트가 사용한다고 해도
from gizmo.client.interface import Gizmo
from gizmo.client.contrib.utils import GizmoHelper

👍

# gizmoa 디렉토리 밑 __init__.py:

from gizmo.client.interface import Gizmo
from gizmo.client.contrib.utils import GizmoHelper

# client code:
from gizmo import Gizmo, GizmoHelper

2. 다른 언어가 객체를 사용하는 경우 캡슐화를 위해 모듈을 사용

파이썬이 Object Oriented programming 을 지원은 하지만, 반드시 필요한 건 아님

자바에서는 클래스는 캡슐화의 기본 단위임
각 파일이 자바 클래스를 나타냄

파이썬은 관련된 함수와 데이터들이 모듈 안에 캡술화됨
만약 MVC 웹 프레임워크를 사용하면, Chrip이라는 걸 만들고 싶으면 model, view, contoller 모듈이 들어있는 패키지 이름을 chrip 이라고 지음
...

profile
🐾

0개의 댓글