모듈
: 이미 만들어져 있고 안정성이 검증된 함수들을 성격에 맞게 하나의 파이썬 파일에 묶어 만들어 놓은 것
쉽게 말해서 함수들을 미리 만들어 한데 모아둔 것. 이 모듈을 가져와 쓰는 것을 모듈을 import한다고 말한다.
간단하게 모듈 만들고 import 해보기
1. mylib.py 에 add(), reverse() 두 가지 함수를 만듭니다.
짜쟌, mylib라는 모듈이 완성되었습니다!
2. mylib 모듈을 사용하기 위해 import 키워드를 씁니다.
모듈이름.함수이름
이와 같은 형태로 함수를 사용할 수 있습니다.
3.이제 모듈을 import하는 방법은 이해가 되었습니다 !
파이썬 패키지 직접 만들어보는 방법
1. mypackage라는 이름의 디렉토리를 생성합니다.
2. mypackge 디렉토리에 패키징 하고 싶은 모듈을 복사합니다.
저는 위에서 만든 mylib.py 모듈을 담았습니다.
3. mypackage 폴더에 version=1.0이 내용인 __init__.py 파일을 생성합니다.
4. 서브 디렉토리에 하위 패키지를 구성하고 싶다면, 1~3의 과정을 동일하게 반복하면 됩니다.
5. 이렇게 나만의 패키지가 생성됐습니다 !
사용하기 위해서는 소스코드 파일이 있는 디렉토리로 mypackage 디렉토리 전체를 가져오면 됩니다.
모듈을 import하는 방법
import 모듈이름
import 패키지이름.모듈이름
ex)
import time
import mylib
import mypackage.mylib
#모듈 함수 사용
time.sleep(5) #파이썬 내장 모듈인 time의 sleep 함수, 5초간 정지한다.
mylib.add(10,20)
mypackage.mylib.reverse('H','L')
from ~ import
from 모듈이름 import 함수이름
from 패키지이름 import 모듈이름
하위패키지가 많을 경우, 쓰고싶은 함수가 포함된 계층구조를 모두 적어야하기 때문에
코드가 길어지고 뭣보다도 너무 귀찮습니다.
내가 쓸 모듈이나 함수의 경로를 모두 쓰지 않고 간단하게 호출하여 사용하는 방법이 있습니다.
from을 사용하여 임포트하는 것입니다.
ex)
from time import sleep
from mypackage import mylib
from mypackage.mylib import reverse
#모듈 함수 사용
sleep(5)
mylib.add(10,20)
reverse('H','L') #3번 줄에서 reverse() 함수 자체를 호출했으므로 간단하게 함수명으로만 사용 가능
import ~ as
import 모듈이름 as 별명
계층구조가 복잡하거나 모듈이름이 길때 이 모듈에 별명을 붙여서 간단히 호출할 수도 있습니다.
ex)
import mypackage as mp
import mypackage.mylib as ml
#모듈 함수 사용
ret1 = mp.mylib.add(10,20)
ret2 = ml.reverse('H','L')
관련 오류
ImportError: No module named '모듈이름'
'모듈이름'이라는 모듈이 존재하지 않는데 import 했을 경우에 발생합니다.
AttributeError: module '패키지이름' has no attribute '모듈이름'
import 시 패키지이름까지만 적고, 모듈이름을 임포트하지 않았을 경우에 발생합니다.
예를 들어,
import mypackage
까지만 적었을 경우를 말합니다.
패키지는 모듈을 모아놓는 곳이므로
사용할 모듈의 이름까지 명시하고 그 안의 함수를 호출하여야 합니다.
'언어 > PYTHON' 카테고리의 다른 글
[Python]임의 순환체의 요소 나누기 / 언패킹(Unpacking) 심화 / 별 표현식 '*' (0) | 2022.11.21 |
---|---|
[Python] 시퀀스를 개별 변수로 나누기 / 언패킹(unpacking) (0) | 2022.11.16 |
[Python] pass의 역할 | 널 연산 Null Operation | IndentationError (0) | 2022.09.26 |
[Python 오류] ImportError: cannot import name (0) | 2022.08.24 |
[Python 오류] TypeError: 'str' object is not callable | selenium 구글 검색 매크로 프로그램 (2) | 2022.08.22 |
댓글