-
90 - (파이썬) 모듈 만들기study with Q - 파이썬 2024. 9. 19. 19:36
#모듈
: 파일 또는 폴더를 활용해서 구성하게 된다
import 모듈이름
→ 파이썬은 위와 같은 코드를 사용하게 되면 현재 실행하고 있는 파일이 있는 위치에서 "모듈이름"이라는 파일 또는 폴더가 있는지 확인한다. (모듈이름과 같은 이름의 파일을 만들어서 사용하면 오류가 발생한다.) 같은 이름의 파일/폴더가 없ㅇ면 환경 변수에 등록되어 있는 추가적인 위치에서 확인한다.
eg)
import sys라는 이름의 모듈이 현재 위치레 있는 곳이 아니다. > 환경 변수라는 곳에 설정되어 있는 위치에 있다.
→ 시스템 모듈에 path라는 변수를 출력해보면 환경 변수에 어떠한 위치가 기록되어 있는지 확인 가능
더보기import sys print(sys.path) >>> ['/home/runner/number2', '/nix/store/v118v4fxlkr24l0cq9mmjdaqivkyzbv8-sitecustomize/lib/python/site-packages', '/nix/store/lq49pw9pmqj715hd6qjwlyap185x3yrl-python3.10-pip-24.0/lib/python3.10/site-packages', '/nix/store/418nyl05dzqb57brvqjd1g22p27xyqbq-python3-3.10.14/lib/python310.zip', '/nix/store/418nyl05dzqb57brvqjd1g22p27xyqbq-python3-3.10.14/lib/python3.10', '/nix/store/418nyl05dzqb57brvqjd1g22p27xyqbq-python3-3.10.14/lib/python3.10/lib-dynload', '/home/runner/number2/.pythonlibs/lib/python3.10/site-packages', '/nix/store/418nyl05dzqb57brvqjd1g22p27xyqbq-python3-3.10.14/lib/python3.10/site-packages', '/home/runner/number2/.pythonlibs/lib/python3.10/site-packages', '/nix/store/bz7zjmjxakwwryc06g7zlv50nfvig04i-python3.10-setuptools-72.1.0/lib/python3.10/site-packages']
# 모듈 만들기
file에 hellolodule.py라는 파일을 만들고 파일 안에
a = 10 def b(): return 300 class C: pass
라고 변수, 함수, 클래스를 만든 뒤에 main.py에서 불러오면 다음과 같이 나온다.
import hellolodule print(hellolodule.a) print(hellolodule.b) print(hellolodule.C) >>> 10 <function b at 0x7f8cbeebf880> <class 'hellolodule.C'>
other eg)
hellolodule.py에 다음과 같은 클래스를 만들고
class Circle: def __init__(self, 반지름): if 반지름 < 0: raise ValueError() self.__원주율 = 3.14 self.__반지름 = 반지름 def 넓이(s): return s.__원주율 * s.__반지름**2 def 둘레(s): return 2* s.__원주율 * s.__반지름
main.py에서는 아래와 같이 코드를 작성하면
from hellolodule import Circle #또는 import hellolodule as h c = Circle(100) #또는 c = h.Circle(100) print(c.넓이()) print(c.둘레()) >>> 31400.0 628.0
서클모듈을 조금 더 간단한 형태로 사용 가능하며 실제 활용하는 클래스나 함수, 변수가 분리되기 때문에 코드 실행 부분이 매우 간단해짐을 볼 수 있다.
__name__ 이라는 변수
: 현재 파일이 자신이 메인으로 실행되는지 모듈로 실행되는지 구분할 때 사용하는 변수
# if __name__ == "__main__"
: 모듈 코드 내부에서 확인할 때 사용
eg) 위에서 모듈인 hellolodule.py에 아래와 같은 코드를 만들고 실행해도 검증 관련 내용은 실행되지 않음
if __name__ == "__main__": print("넓이()를 검증") if Circle(10).넓이 == 314 - 10**-7 : print("넓이() 검증 성공: Success") else: print("넓이() 검증 실패: Fail") print("둘래()를 검증") if Circle(10).둘레 == 62.8 - 10**-7 : print("길이() 검증 성공: Success") else: print("길이() 검증 실패: Fail")
※ 가독성과 유지보수성을 위한 수정을 할 때 테스트가 유용하게 활용된다.
'study with Q - 파이썬' 카테고리의 다른 글
91 - (파이썬) 패키지 (0) 2024.09.22 89 - (파이썬) 모듈 문제 (0) 2024.09.19 88 - (파이썬) 기본 내장 모듈 (1) 2024.09.13 87 - (파이썬) 모듈을 읽는 방법 (0) 2024.09.13 85 - (파이썬) 스택과 큐 (2) 2024.09.09