웹개발왕

[Python] __init__.py 파일에 대해서 알아보자 본문

Python

[Python] __init__.py 파일에 대해서 알아보자

D.Luffy 2025. 1. 7. 10:23
반응형

 

 

 

안녕하세요.

오늘은 Python으로 개발할때 자주 사용하는 __init__.py 파일에 대해서 알아보겠습니다.

__init__.py 파일은 Python에서 패키지를 정의하는 데 중요한 역할을 합니다.

 

우선 그 역할에 대해 알아보겠습니다!


 

__init__.py 역할

 

 

__init__.py 파일은 크게 3가지 역할을 합니다.

 

1. 패키지로 인식

- Python은 디렉토리를 패키지로 간주하기 위해 해당 디렉토리에 __init__.py 파일이 있어야 합니다.

- Python 3.3 이후부터는 __init__.py 파일이 없어도 패키지로 간주되지만, 초기화 작업이 필요한 경우 여전히 중요한 역할을 합니다.

 

2. 초기화 코드 실행

- 패키지가 로드될 때 초기화 코드를 실행할 수 있습니다. 예를 들어, 패키지에서 사용할 전역 변수를 정의하거나 필요한 모듈을 미리 가져오는 데 사용됩니다.

 

3. 하위 모듈 및 클래스 가져오기

- __init__.py 파일을 통해 하위 모듈이나 클래스를 가져와서 패키지 외부에서 더 간단하게 사용할 수 있도록 설정할 수 있습니다.

 

이 역할에 대해 사용 예시도 알아보겠습니다


 

__init__.py 사용 예시

 

 

1. 패키지로 인식

 

이런식으로 파일 구조가 되어있다면 run.py에선

 

from mypackage import module1

 

이렇게 import하면 module1 파일을 바로 import 할 수 있습니다.

 

앞서 말했듯이 Python 3.3 이후부터는 __init__.py 파일이 없어도 패키지로 적용됩니다.

 

 

2. 초기화 코드 실행

print("Initializing mypackage")

__version__ = "1.0.0"

__init__.py 파일에서 이렇게 작성하고

 

import mypackage

print(mypackage.__version__)

run.py 파일에서 이렇게 작성하면

 

Initializing mypackage
1.0.0

__version__ 내용만 출력되는게 아니라 __init__.py 내에 있는 소스가 실행됩니다.

 

 

3. 하위 모듈 및 클래스 가져오기

from .module1 import function1
from .module2 import function2

__all__ = ["function1", "function2"]

__init__.py에서 __all__ 변수에 배열로 하위에 있는 모듈이나 클래스를 선언하면

 

from mypackage import function1, function2

run.py에선 한줄로 mypackage 하위에 있는 모듈을 import 할 수 있습니다.

 

from mypackage.module1 import function1
from mypackage.module2 import function2

만약 __init__.py 파일에서 import 안하고 직접 import 한다면 이런식으로 사용해야합니다.

 


 

이렇게 __init__.py 파일에 대해 알아보았는데요.

Python에서는 __init__은 파일명뿐만 아니라 함수명으로도 사용 가능합니다.

 

다음엔 Python에서 많이 사용하는 함수인

def __init__ (self):

에 대해 알아보겠습니다.

 

읽어주셔서 감사합니다!

 


 

 

참고하면 도움되는 포스팅 ▼

 

[Python] 윈도우에서 파이썬 설치하기

안녕하세요. 오늘은 윈도우에서 파이썬 언어를 설치하는 방법을 알아보겠습니다.  파이썬(Python) 다운로드 우선 파이썬 공식 사이트에 접속해서 자신이 원하는 버전을 다운로드 받습니다.  

web-developer1.tistory.com

 

 

[Spring Boot] Spring Starter 프로젝트 & 웹페이지 만들기

오늘은 저번에 설치한 STS4를 이용해 웹화면을 띄우기 위한 Spring Starter 프로젝트 생성하는 방법을 알아보겠습니다.아직 STS4를 설치 못하셨다면 저번 포스팅을 참고해서 설치해주세요. ▼ [Spring]

web-developer1.tistory.com

 

 

[Node.js] express 프레임워크를 이용해 웹 서버 만들기

안녕하세요. 오늘은 express를 이용해 웹페이지를 만들어보겠습니다. 아직 Node.js를 설치 안하신분들은 이전 포스팅 참고해주세요.  [Node.js] 윈도우에서 Node.js 설치하기안녕하세요. 오늘은 윈도

web-developer1.tistory.com

 

반응형