본문 바로가기
Python

Modules and Package

by Adam92 2020. 6. 2.

Modules


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

따로 모듈로 모아놓은 이유는 다음과 같습니다.

 

  • 다른 파일에서 재사용이 가능하게 한다.

  • 전체 코드가 한 파일에 넣기에는 너무 커졌을때 여러 파일로 나누어서 정리를 하기 위해서.

ex) 

## my_module.py
my_module_var = 7

def my_module_func():
    return "Hi!"

class MyClass:
    pass
import my_module

my_module.my_module_func()	# my_module 의 함수 구현

 

이렇게 모듈 이름을 앞에 붙여줘야 하는 이유는, 

그래야 파이썬이 어느 파일을 봐야 해당 함수를 찾을수 있는지 알 수 있기 때문입니다.  만일 모듈 이름을 안붙어주면 파이썬은 모듈의 파일을 보지 않고 해당 파일에서만 함수를 찾을려고 합니다 (그리고 못찾을거기 때문에 에러가 납니다).

이러한 구조를 "name space" 라고 합니다.

 

Alternative ways to import modules

=>  import 키워드 외에 from import 키워드를 사용해서 모듈을 불러들일수 있습니다. (모듈이름을 부르지 않아도 된다.)

from my_module import my_module_func, my_module_var

print(my_module_var)
my_module_func()

 

 

=>  Import As

 

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

from my_module  import my_func as l1
from my_module2 import my_func as l2

l1()
l2()

 

 

Package


파이썬(Python)에서는 복잡한 프로그램(소스코드)을 모듈(Modules)로 나누어 관리하는데, 이런한 모듈은 또 패키지(Packages)로 묶어서 관리할 수 있습니다. 패키지란 모듈을 디렉토리(폴더)로 구분하여 관리하는 것을 말합니다.

 

 

 

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

import package.module1

from package.module2 import func_b



package.module2.func_b()

 

 

 

'Python' 카테고리의 다른 글

Python etc..  (0) 2020.06.04
Modules and Package (Feature)  (0) 2020.06.03
Class  (0) 2020.06.01
List : 추가 와 변경  (0) 2020.05.28
가변인수와 가변키워드인수  (0) 2020.05.27