파이썬에서 __all__이 무엇인가
__all__
의 기본 개념
파이썬에서 __all__
은 모듈에서 어떤 변수나 함수, 클래스를 공개할지 결정하는 데 사용됩니다. 이는 from [모듈명] import *
구문을 사용할 때 중요한 역할을 합니다. __all__
이 지정되지 않았다면, 이 구문은 모듈에 정의된 모든 객체를 가져오겠습니다만, __all__
이 지정되었다면 오직 __all__
리스트에 포함된 객체만을 가져옵니다.
어떻게 사용하는가?
모듈에서 공개할 객체를 선택적으로 지정하려면, __all__
리스트를 정의합니다. 이 리스트에는 공개하려는 객체의 이름들을 문자열 형태로 넣습니다.
1
__all__ = ['함수1', '변수1', '클래스1']
이렇게 하면, from [모듈명] import *
구문을 사용할 때 오직 이 객체들만 불러올 수 있습니다.
실제 예시
모듈에 다음과 같은 코드가 있다고 가정해보겠습니다.
1
2
3
4
5
6
7
8
9
10
# 모듈 코드
def 함수1():
pass
def 함수2():
pass
변수1 = 10
__all__ = ['함수1', '변수1']
이 상황에서 from [모듈명] import *
을 실행하면, 함수1
과 변수1
만 불러옵니다. 함수2
는 불러오지 않습니다.
주의사항
__all__
을 사용할 때 문자열로 객체 이름을 정확하게 지정해야 합니다. 오타가 있으면 해당 객체는 불러오지 못합니다. 또한, __all__
은 해당 모듈에서만 유효합니다. 다른 모듈에서 이를 덮어쓸 수는 없습니다.
결론
파이썬의 __all__
은 모듈 내부에서 공개할 객체를 선별적으로 지정하는 유용한 메커니즘입니다. 이를 통해 모듈의 안정성과 유지보수성을 높일 수 있습니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.