[Python] 패키지

_찬·2022년 9월 28일
0

Python

목록 보기
7/9
post-thumbnail

전에 올린 포스트에서는 모듈에 대해서 다뤄보았다.

패키지는 모듈이 2개 이상 모인 것들이다.

먼저 간단하게 패키지 폴더를 만들고 하위폴더를 만들어 주겠다.

폴더 만들기

상위 폴더의 이름은 Travel이고, 하위폴더는 __init__.py, Thailand.py, Vietnam.py를 만들어 준다.

그리고 main.py는 Travel 폴더 밖에 속한다.

__init__이란?

__init__ .py는 현재 디렉토리를 패키지파일로 만든다는 뜻이다.
또한 __all__ 을 사용할 수 있다.

__all__ 이란?

현재 패키지 Travel에는 Thailand.py와 Vietnam.py 모듈이 존재한다.
그렇기 때문에 모듈을 불러올때 __all__ 에서 모듈의 이름을 지정해주지 않으면
Nameerror가 발생한다. 그렇기 때문에 아래와 같이 정의를 해주어야 한다.

__all__ = ["Vietnam", "Thaniland"] 

# init 파일은 패키지를 초기화 시킨다. 
# __all__ 는 현재 디렉토리를 패키지로 취급하게 만들며, 코드를 실행하거나 __all__ 변수를 설정할 수 있다.

Vietnam, Thaniland 파이썬 파일 생성

코드는 아래와 같다.

class ThanilandPackage:
    def detail(self):
        print('[태국 패키지 3박 5일] 방콕, 파타야 여행(야시장 투어) 50만원')
class VietnamPackage:
    def detail(self):
        print('[베트남 패키지 3박 5일] 방콕, 다냥 효도 여행 60만원')

Class 이름은 각자 자신의 이름 + Package를, self는 자기 자신을 뜻한다는 뜻이다.
self는 따로 정리해서 공부가 거의 다 되었다고 생각하면 복습을 잘 할수 있게끔 올리도록 하겠다.

모듈 불러와서 값 출력하기

우리는 아까 Travel 파일 안에 패키지 파일을 만들고 실행 파일은 따로 바깥에 빼두었다. 그 파일이 main.py이다.

main.py의 코드는 아래와 같으며, 정말 간단하다.

import Travel.Thailand

trip_to = Travel.Thailand.ThanilandPackage()
trip_to.detail()

위는 import로 모듈을 가져오는 방법이고, Travel.Thailand를 통해서 모듈을 가져오고 trip_to 라는 변수에 ThanilandPackage() 클래스를 넣어준다.
그리고 마지막으로 trip_to.detail()을 하여 실행한다.
(detail)은 ThanilandPackage() 클래스 안에 있는 메서드이다.

이렇게 잘 나온다.

또 from을 사용하는 방법이 있다.

from Travel.Thailand import ThanilandPackage
trip_to = ThanilandPackage()
trip_to.detail()

Travel.Thailand 에서 ThanilandPackage모듈을 불러오고 ThanilandPackage에 속하는 detail() 모듈을 넣어준다.
결과는 동일하다

profile
꾸준한 사람이 되길!

0개의 댓글