211210 TIL

CoderS·2021년 12월 10일
0

TIL DAY 127

오늘 배운 일

✔️ Python 중급

1. init 파일이란?

  • init 파일은 폴더가 파이썬 패키지라고 말해준다.

  • 전에 봤던, name 특수 변수처럼 양쪽에 언더스코어가 있다.

  • initialize의 줄임말로 초기화를 뜻한다.

그 말은, init은 패키지를 초기화 할 때 사용되는 것 이다.
해석하면 처음으로 패키지나 패키지 안에 어떠한 것을 import하면은 가장 먼저 init파일에 있는 코드가 실행된다.

init.py

run.py

실행시키면...

shapes 패키지를 불러오면서, init 파일을 실행한 것 이다.

run.py

volume 모듈을 불러오면...

결과는...

똑같이 잘 출력이되서 나온다.

2. init 파일 활용법

패키지를 가져올 때, 안에 있는 모듈들을 같이 가져올려면 init 파일을 활용해서 에러를 방지할 수 있다.

init.py

init 파일에서 import되는 모듈들은 패키지 안으로 import된다고 이해하면 된다.

그 말은, shapes 패키지를 import하면은 그 안에 있는 모듈들을 접근할 수 있다.

run.py

전에 오류가 났던 파일을 다시 실행시키면...

결과값 :

  • 아무런 이상없이 출력이되서 나타난다.

만약 특정 모듈만 불러온다면...

init.py

run.py

결과값 :

  • volume이라는 속성이라는게 없다고 뜬다.

이번에는 area 모듈안에 있는 함수들을 불러오겠다.

init.py

run.py

결과값 :

shapes 패키지 안에서 circle 함수를 직접 가져왔기 때문에 area를 건너뛰고 shapes.circle, shapes.square라고 쓸 수 있었다.

3. init 파일 변수 정의하기

area.py

원의 면적을 구할 때 필요한 PI를 파일 위에 정의해줬다.
하지만 PI는 area 모듈에서만 쓰이는게 아니라 volume 모듈에서도 사용된다.

PI처럼 패키지안에 여러 모듈들이 필요로하는 것들은 각 모듈에서 정의하지 않고 패키지안에서 한 번만 정의해주는게 좋다.

왜냐하면 똑같은 변수를 여러번 정의하는 것은 비효율적이고 실수로 하나를 잘 못 정리하면 프로그램에 오류가 발생할 수 있다.

PI를 한 번만 정의하고 싶으면 shapes 패키지안에 init 파일에 정의하면된다.

init.py

패키지 안에 있는 모듈들은 위의 PI를 가져다쓰면 된다.

area.py

volume.py

PI같은 상수뿐만아니라, 여러 모듈에서 필요한 함수 또는 객체도 패키지에 init 파일에서 정의해서 사용이가능하다.

참고로 패키지에 있는 init파일에 정의된 것들은 패키지 밖에서도 사용이 가능하다.

예 )

run.py

결과값 :

끝으로 :

  • 오늘은 패키지에서 중요하게 사용되는 init 파일에 대해 배우는 시간을 가졌습니다.
  • init 파일에 변수나 함수, 객체같은 것들을 선언해서 가져올 수 있으면 굳이 모듈에서 반복해서 안써도 되니 편리한 것 같습니다.
profile
하루를 의미있게 살자!

0개의 댓글