Python-Modules & Packages

DONGHYUN KOO·2020년 8월 23일
0

python

목록 보기
16/19

Modules & Packages

파이썬에서 모듈은 변수나 함수 그리고 클래스 등을 모아놓은 파일입니다.

  • 다른 파일에서 재사용이 가능하게 하고
  • 전체 코드가 한 파일에 넣기에는 너무 커졌을때 여러 파일로 나누어서 정리를 하기 위해서.

예를 들어, List의 총 요소 개수를 알고 싶으면 len 함수를 사용하면 되는걸 이미 보았습니다.

my_list = [1, 2, 3, 4, 5]
my_list_length = len(my_list)
print(my_list_length)

하지만 len 함수를 직접 구현한적은 없습니다.
파이썬에서 이미 모듈로 구현해놓았음으로 그냥 가져다 쓰면 되는 것입니다.

Module 만들기

Module을 만드는 것은 어렵지 않습니다.
단순히 파일을 만든후 그 안에 재사용 하고 싶은 함수나 클래스 혹은 변수등을 구현하면 됩니다.

my_module.py

my_module_var = 7

def my_module_func():
return "Hello!"

class MyModuleClass:
pass

그 후 단순히 다른 파일에서 불러와 사용하면 됩니다.
모듈을 불러와 (import) 사용하기 위해서는 import라는 키워드를 사용하면 됩니다.
import <모듈 이름> (주의할점은 모듈을 import 할때 파일 확장자인 ".py" 는 제외하고 파일 이름만 사용해서 import 해야 합니다.)

Alternative ways to import modules

from <모듈 이름> import <함수/변수/클래스1>, <함수/변수/클래스2>, ..., <함수/변수/클래스N>

from my_module import my_module_func, my_module_var

print(my_module_var)
my_module_func()

from import 키워드를 사용하여 모듈을 불러들이는 경우 모듈 이름을 붙이지 않고 곧바로 원하는 함수나 변수 그리고 클래스를 호출할 수 있습니다. 모듈에서 사용하는 것이 명확할때 from import 를 사용하면 편리합니다.

Import As

만일 여러 모듈을 import 하게 되면 이름 충돌이 날 수도 있습니다. 예를 들어 서로 다른 모듈에서 동일한 이름의 함수가 있을 수도 있는것입니다. 혹은 원하는 모듈의 요소의 이름이 너무 길수도 있습니다. 이러한 경우 import as 키워드를 사용해서 새로운 이름을 주어서 사용할 수 있습니다.

from my_module  import my_func as f1
from my_module2 import my_func as f2
from my_module3 import function_with_name_too_long as f3
f1()
f2()
f3()

Packages

Package는 module과 마찬가지로 다른 파일에서 불러와서 사용하는 개념인데요,

  • 차이점은 module보다 더 크고 복잡한 코드라는 점
  • 이렇게 여러 파일에 나누어져 있는 코드들도 다른 곳에서 하나의 module로 불러와서 사용할 수 있도록 해주는것이 package 입니다.

Package는 일반 모듈 처럼 import 하여 사용할 수 있습니다. 다만 차이점은 클래스 객체를 사용할때 처럼 "dot notation" 으로 해당 package의 원하는 모듈을 import 하면 됩니다.

import pkg.mod1
from pkg.mod2 import func2
pkg.mod1.func2()
func2()

0개의 댓글