๋ค์ด๊ฐ๋ฉฐ
Python์ผ๋ก ๊ฐ๋ฐํ๋ ๊ณผ์ ์์ ํจํค์ง๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ ์ฐธ์กฐํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๊ณ ๊ทธ ๊ณผ์ ์์
__init__.py
๋ฅผ ํตํด ํด๊ฒฐํ์์ต๋๋ค.__init__.py
์ ์ ๋ฆฌํ๊ธฐ ์ํด ์์ฑํฉ๋๋ค.
__init__.py
๋?
__init__.py
ํ์ผ์ ํด๋น ๋๋ ํฐ๋ฆฌ๊ฐ ํจํค์ง์ ์ผ๋ถ์์ ์๋ ค์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.- ๋๋ ํฐ๋ฆฌ์
__init__.py
ํ์ผ์ด ์๋ค๋ฉด ํจํค์ง๋ก ์ธ์๋์ง ์์ ์๋ ์์ต๋๋ค.
Example
- src ๋๋ ํ ๋ฆฌ์
todo.py
, tests ๋๋ ํ ๋ฆฌ์test_todo.py
๊ฐ ์กด์ฌํ์ง๋ง pytest ๊ฒฐ๊ณผ ์คํจํ์์ต๋๋ค.
Pylint ํ๋ฉด
Pytest ๊ฒฐ๊ณผํ๋ฉด
init.py ์์ฑ ํ ๋ชจ์ต
Pytest ๊ฒฐ๊ณผํ๋ฉด
__all__
๋?
- ํน์ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋์
*
๋ฅผ ์ด์ฉํ์ฌ importํ ๋์๋ ๋ค์๊ณผ ๊ฐ์ด ํด๋น ๋๋ ํฐ๋ฆฌ์__init__.py
ํ์ผ์__all__
์ด๋ผ๋ ๋ณ์๋ฅผ ์ค์ ํ๊ณ importํ ์ ์๋ ๋ชจ๋์ ์ ์ํด ์ฃผ์ด์ผ ํฉ๋๋ค. __all__
๋ก ์ ์ํ์ง ์์ผ๋ฉด ์ธ์๋์ง ์์ต๋๋ค.
Example
>>> from game.sound import *
>>> echo.echo_test()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'echo' is not defined
__all__
์ ์
# __init__.py
__all__ = ['echo']
๊ฒฐ๊ณผํ๋ฉด
>>> from game.sound import *
>>> echo.echo_test()
echo