파이썬에서 패키지와 모듈은 코드를 구조화하고 재사용 가능한 단위로 분할하는 데 사용됩니다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 그리고 __all__
속성을 사용하여 모듈 또는 패키지에서 공개하고자 하는 요소들을 명시적으로 지정할 수 있습니다. 이번 기사에서는 __all__
속성의 역할과 사용법에 대해 자세히 알아보겠습니다.
__all__
속성의 역할
파이썬 모듈은 기본적으로 모든 식별자(함수, 클래스, 변수 등)를 내보내지 않습니다. 대신, 모듈 사용자에게는 명시적으로 공개하고자 하는 식별자를 선택할 수 있도록 해줍니다. __all__
속성은 이를 위한 도구로 사용됩니다.
__all__
속성은 모듈 내에서 외부에서 접근 가능한 식별자들을 지정하는 리스트입니다. 이 속성에 지정된 모든 식별자들은 해당 모듈을 import할 때 from module import *
구문을 사용하여 한번에 가져올 수 있습니다.
__all__
속성 사용법
아래는 module.py
라는 모듈에서 __all__
속성을 사용하는 간단한 예제입니다.
# module.py
def public_function():
pass
def _private_function():
pass
class PublicClass:
pass
class _PrivateClass:
pass
# __all__ 속성에 공개하고자 하는 요소들을 명시
__all__ = ['public_function', 'PublicClass']
위 예제에서는 __all__
속성을 사용하여 public_function
과 PublicClass
만 공개하려고 합니다. 동시에 _private_function
과 _PrivateClass
는 외부에서 직접 접근할 수 없습니다.
이제 다른 모듈에서 module.py
를 import 해보겠습니다.
# main.py
from module import *
# public_function과 PublicClass만 import 됨
위의 코드에서 from module import *
코드를 사용하여 module
모듈의 모든 공개 요소를 가져왔습니다. 하지만 __all__
속성에 지정된 public_function
과 PublicClass
만 import 되었습니다.
이렇게 __all__
속성을 사용하면 모듈의 인터페이스를 명시적으로 정의할 수 있고, 실수로 비공개 요소를 외부에 노출시키는 것을 방지할 수 있습니다.
요약
__all__
속성은 모듈이나 패키지에서 외부에 공개하는 요소를 선택적으로 지정할 수 있는 파이썬 기능입니다. 이를 통해 모듈의 인터페이스를 개발자가 명시적으로 정의할 수 있고, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.