Python __all__ 이해하기 - 15초 설명

Python __all__ 이해하기 - 15초 설명
TILPosted On Jul 13, 20243 min read

image

Case 1: No all

# a.py

a = 'apple'
b = 'boy'
c = 'cat'
d = 'donkey'
e = 'elephant'
f = 'fish'
# b.py

from a import *

print(dir())

# [..., 'a', 'b', 'c', 'd', 'e', 'f']

여기서 from a import *는 a.py에서 모든 항목을 b.py로 가져옵니다. 이것이 b.py의 dir()에 a, b, c, d, e 및 f가 나타나는 이유입니다.

Case 2: __all__이 정의된 경우

# a.py

a = 'apple'
b = 'boy'
c = 'cat'
d = 'donkey'
e = 'elephant'
f = 'fish'

__all__ = ['a', 'b']
# b.py

from a import *

print(dir())

# [..., 'a', 'b']

위에서 "from a import *"은 a와 b만 가져옵니다. 이는 a.py의 all 때문에 b.py에게 a와 b만 가져와야 한다고 알려주기 때문입니다.

참고 - 이 작업은 "from a import *"에서만 작동합니다. 여전히 from a import c, d, e, f를 사용할 수 있습니다.

왜/언제 사용해야 하는가

만약 a.py에 무작위로 많은 것이 들어있지만 우리가 '내보낼' 것은 a와 b뿐이라면, 우리가 from a import *를 사용할 때 실수로 많은 불필요한 것들을 가져오지 않도록 하기 위해 __all__을 사용해야 합니다.

결론

이해하기 쉽고 명확했길 바랍니다.

만약 제작자로서 저를 지원하고 싶다면

  • 이 이야기에 대해 50번 박수를 치세요
  • 귀하의 생각을 나에게 알려주는 댓글을 남겨주세요
  • 이야기 중 가장 좋아하는 부분을 강조해주세요

감사합니다! 이런 작은 조치들이 큰 도움이 되고, 정말 감사합니다!

YouTube: https://www.youtube.com/@zlliu246

LinkedIn: https://www.linkedin.com/in/zlliu/