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 |