__all__ = ["SiglipProcessor"]

SON·2026년 3월 6일

“이 파일에서 밖으로 공식적으로 공개할 대상은 SiglipProcessor다.”**

라는 의미


1. 어디에 쓰이냐

특히 이런 코드에서 영향이 있어:

from some_module import *

이때 __all__이 있으면
그 목록에 들어 있는 이름들만 import 돼.

예를 들면:

__all__ = ["SiglipProcessor"]

이면

from some_module import *

했을 때 SiglipProcessor만 들어오는 거야.


2. 왜 쓰냐

이유는 보통 3가지야.

(1) 이 파일의 공식 공개 API를 표시

이 파일 안에 변수, 함수, 클래스가 여러 개 있을 수 있는데
그중에서 “사용자가 써도 되는 공식 대상”을 정해주는 거야.

즉:

  • 내부 구현용 이름은 숨기고
  • 외부 사용자에게 보여줄 핵심만 지정

(2) import * 제어

와일드카드 import 시 뭐가 들어올지 통제하기 위해서.


(3) 문서화/가독성

이 파일의 핵심 public object가 뭔지 한눈에 보이게 해.

즉 이 파일에서는
“대표 클래스는 SiglipProcessor입니다”
라고 선언하는 느낌이야.


3. 지금 코드에서 왜 이게 있냐

네가 본 파일은 아마 processor 정의 파일이라서
핵심 공개 대상이 SiglipProcessor 하나인 거야.

예를 들어 파일 안에는 내부적으로:

  • import된 것들
  • helper
  • decorator
  • base class 관련 이름

이런 게 섞여 있을 수 있는데,
외부에서 이 파일을 사용할 때는 결국 SiglipProcessor가 핵심이잖아.

그래서:

__all__ = ["SiglipProcessor"]

라고 적어둔 거야.


4. 예시로 보면 쉬워

x = 10

class A:
    pass

class B:
    pass

__all__ = ["A"]

이 상태에서:

from mymodule import *

하면 A만 들어오고
x, B는 안 들어올 수 있어.


5. 중요한 점

이건 클래스를 만드는 코드가 아니고,
모듈이 외부에 어떤 이름을 공개할지 정하는 변수야.

즉:

  • SiglipProcessor를 생성하는 코드도 아니고
  • return도 아니고
  • 실행 로직도 아님

그냥 모듈 수준의 설정이야.


6. 아주 짧게 정리

__all__ = ["SiglipProcessor"]

=
“이 파일에서 공식적으로 export할 이름은 SiglipProcessor다”


profile
Like it, and it will be the best.

0개의 댓글