Languages/Python

[워니 파이썬 기초] #5 패키지, 모듈

성중 2021. 2. 19. 20:29

 

#패키지(=라이브러리)

-특정 기능(프로그램)을 위한 모듈의 합

-코드 공유 or 정리(모듈화)에 주로 사용됨

 

#모듈(module)

-프로그램의 기능별 단위로 분할된 코드의 집합

 

animal이라는 패키지를 만들고 그 안에 dog와 cat이라는 모듈을 만들자!

dog와 cat 모듈에 “hi”라고 말하는 기능을 넣자,,

 

먼저 폴더를 만들어야 한다. (폴더의 이름이 패키지의 이름이 된다.)

 

animal폴더 생성

 

폴더 안에 모듈을 만들어주자.

 

dog.py 파일 생성 ‘.py’는 해당 파일이 파이썬 코드임을 알려줌

cat.py 파일 생성

 

이제 기능을 위해 dog 모듈에 클래스를 입력해 주자!

class Dog:
  def hi(self):
    print("bark!")

cat 모듈에도 입력해주자.

class Cat:
  def hi(self):
    print("meow")

폴더가 패키지의 성질을 가지기 위해서 폴더 안에 __init__파일을 생성

 

__init__.py 파일 생성

 

init파일에 입력 ( . <- “이 폴더에 있는”)

from .cat import Cat
#“현재 폴더에 있는” cat.py 이라는 파일에서 Cat이라는 클래스 가져오기
from .dog import Dog
#“현재 폴더에 있는” dog.py 이라는 파일에서 Dog라는 클래스 가져오기

이제 메인 파일로 가서 패키지의 모듈을 각각 불러오자

from animal import dog   #animal 패키지에서 dog 모듈 가져오기
from animal import cat   #animal 패키지에서 cat 모듈 가져오기

d = dog.Dog()
d.hi()

c = cat.Cat()
c.hi()

-> bark!
   meow

아니면.. 모두 불러오기

 

from animal import *   #animal 패키지의 모든 모듈 불러오기

d= Dog()
c= Cat()

d.hi()
c.hi()

-> bark!
   meow

 

이 개념을 활용해 다른 사람의 코드를 활용해보자!

*좌측의 패키지 검색 (repl기준 정육면체 모양)에서 패키지이름을 검색해 다운

(주소를 알려주는 패키지 geopy를 사용해보자!)

*이후 메인파일에서 불러오자

ex) from geopy.geocoders import Nominatim

geopy라는 패키지에서/geocoders라는 모듈로 들어가/Nominatim이라는 클래스 불러오기

 

*활용해보자!

from geopy. geocoders import Nominatim
geolocator = Nominatim(user_agent="sungjoong")
location = geolocator.geocode("Seoul, South korea")
print(location.address)

-> 서울, 인수봉로 84길, 우이동, 강북구, 01376, 대한민국

이 외에도 패키지가 제공하는 다양한 기능들을 활용해 볼 수 있다!

print(location.latitude, location.longitude)
print(location. raw)