포스트

파이썬에서 __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 라이센스를 따릅니다.