본문 바로가기
Language/Python

파이썬 패키지, 모듈, import 개념 및 예제

by wakestand 2020. 1. 28.
반응형

파이썬에서 패키지(Package)란 라이브러리와 동일한데 모듈(Module)들의 합이라고 보면 된다

모듈이란 메소드, 변수, 클래스가 들어있는 파일을 말한다

 

먼저 패키지를 작성하는 방법은

프로젝트에서 우클릭 후 New > Python Package로 작성해 주면 된다

 

패키지 작성 시에 바로 __init__.py 파일이 생기는데

이 파일을 통해 패키지 import 시 무슨 모듈들을 가져올지 선택해줄 수 있다

 

일단은 call 메소드를 가지고 있는 Cat, Dog 클래스를 생성한다

 

다음으로는 __init__.py 파일에서

위에 생성한 Cat과 Dog 메소드를 import 시에 사용할 수 있게 지정을 해줘야 하는데

from .파이썬파일명 import 클래스명 으로 파이썬 파일 안에서 하나의 클래스를 지정해주거나

from .파이썬파일명 import * 로 파이썬 파일 내 모듈 전체를 지정해 줄 수 있다

 

__init__.py 파일을 작성한 후

다른 파이썬 파일에서

from 패키지명 import 클래스명으로 패키지 내의 특정 클래스를 가져오거나

from 패키지명 import * 으로 패키지의 전체 모듈을 가져올 수 있다

 

이후 출력을 해 보면

import가 잘 되어 Dog, Cat 클래스를 생성하지 않고도 객체화 후

Call 메소드가 출력이 되는 것이 보인다

 

예제에 사용한 코드는 아래와 같다

 

패키지

 

class Cat:
    @staticmethod
    def call(self):
        print("meow")

 

class Dog:
    @staticmethod
    def call(self):
        print("woof")

 

from .dog import Dog  # 해당 폴더의 dog.py 파일에서 Dog 클래스 가져오기
from .cat import Cat  # 해당 폴더의 cat.py 파일에서 Cat 클래스 가져오기
from .cat import *  # 해당 폴더의 cat.py 파일에서 모듈 전체 가져오기

 

import 받아 사용 시

 

from animal import Dog  # animal 패키지의 Dog 클래스 불러오기
from animal import Cat  # animal 패키지의 Cat 클래스 불러오기
from animal import *  # animal 패키지의 모든 모듈 가져오기

a = Dog
a.call(a)  # Dog 클래스의 call 메소드 호출
b = Cat
b.call(b)  # Cat 클래스의 call 메소드 호출
반응형

댓글