“이 파일에서 밖으로 공식적으로 공개할 대상은 SiglipProcessor다.”**
라는 의미
특히 이런 코드에서 영향이 있어:
from some_module import *
이때 __all__이 있으면
그 목록에 들어 있는 이름들만 import 돼.
예를 들면:
__all__ = ["SiglipProcessor"]
이면
from some_module import *
했을 때 SiglipProcessor만 들어오는 거야.
이유는 보통 3가지야.
이 파일 안에 변수, 함수, 클래스가 여러 개 있을 수 있는데
그중에서 “사용자가 써도 되는 공식 대상”을 정해주는 거야.
즉:
import * 제어와일드카드 import 시 뭐가 들어올지 통제하기 위해서.
이 파일의 핵심 public object가 뭔지 한눈에 보이게 해.
즉 이 파일에서는
“대표 클래스는 SiglipProcessor입니다”
라고 선언하는 느낌이야.
네가 본 파일은 아마 processor 정의 파일이라서
핵심 공개 대상이 SiglipProcessor 하나인 거야.
예를 들어 파일 안에는 내부적으로:
이런 게 섞여 있을 수 있는데,
외부에서 이 파일을 사용할 때는 결국 SiglipProcessor가 핵심이잖아.
그래서:
__all__ = ["SiglipProcessor"]
라고 적어둔 거야.
x = 10
class A:
pass
class B:
pass
__all__ = ["A"]
이 상태에서:
from mymodule import *
하면 A만 들어오고
x, B는 안 들어올 수 있어.
이건 클래스를 만드는 코드가 아니고,
모듈이 외부에 어떤 이름을 공개할지 정하는 변수야.
즉:
SiglipProcessor를 생성하는 코드도 아니고그냥 모듈 수준의 설정이야.
__all__ = ["SiglipProcessor"]
=
“이 파일에서 공식적으로 export할 이름은 SiglipProcessor다”