모듈(Module)
: 독자적인 기능을 갖는 구성 요소로 변수, 함수, 클래스 등을 모아 놓은 스크립트 파일입니다. 모듈은 간단한 기능을 담을 때 사용하며, 패키지는 코드가 많고 복잡할 때 사용합니다. 파이썬에서는 각각의 소스 파일을 일컬어 이야기 합니다.
제공자 기준
– 표준 모듈 : 파이썬과 함께 제공되는 모듈
– 사용자 생성 모듈 : 프로그래머가 직접 작성한 모듈
– 서드 파티 모듈 : 다른 프로그래머 or 업체에서 제공한 모듈
● 사용자 생성 모듈 - 모듈 만들기 (in PyCharm)
Python File 을 눌러줍니다.
이름을 넣어주고 enter 를 눌러주면 생성 됩니다.
모듈 안에 변수, 함수, 클래스 등을 넣어줍니다.
모듈(Module) – import
- 다른 모듈을 현재 모듈로 불러오는 기능
- 다른 모듈 내의 코드에 대한 접근을 가능
- 접근 가능 코드는 변수/ 함수/ 클래스 모두 포함
① 모듈 사용 ( import ) - 가독성을 높은 방법으로 가장 많이 권고 하는 방법입니다.
import한 모듈의 이름으로 ( . ) 으로 접근해서 사용하면 됩니다.
결과(console)
가독성을 높은 방법으로 가장 많이 권고 하는 방법이지만 이름이 길어지면 사용하기 불편할 때 as 를 사용하여 기존 모듈에 새이름 부여 사용 가능하도록 합니다.
+ ) import 모듈 이름 as 별칭
- 가장 많이 사용 합니다.
② 모듈 사용 ( from + import )
from 을 활용하여 함수의 이름으로만 접근하여 사용 가능하게 합니다.
결과(console)
③ 모듈 사용 ( from + import + ( , ) ) : 콤마( , )를 이용해서 연속적으로 여러 함수(변수) 사용
결과(console)
④ 모듈 사용( from + import + ( * ) ) : ( * ) 모든 함수, 변수 사용할 수 있도록 지원
결과(console)
<권고하지 않음>
1. 실직적으로 이 코드를 만나면 모든 내용을 읽어와서 배치하는 것과 같으므로 용량을 많이 차지합니다.
2. 어떤 함수를 사용하고 있는지 명확하지 않습니다. (가독성을 떨어뜨림)
● 모듈(Module) 경로 탐색 규칙
: import문을 만나면
1. 파이썬 인터프리터 내장 모듈 검색
- sys.builtin_module_names
결과(console)
2. sys.path에 정의되어 있는 디렉토리 검색
- 파이썬 모듈이 실행되고 있는 현재 디렉토리
- PYTHONPATH 환경변수에 정의되어 있는 디렉토리
- 파이썬과 함께 설치된 기본 라이브러리
결과(console)
실행되고 있는 현재 디렉토리 확인 -> 환경변수 정의된 디렉토리 확인 -> 기본 라이브러리 확인
기본 라이브러리에 넣는 것을 권장 합니다. 하지만 편의에 의해서 실행 되는 디렉토리에 저장을 많이 합니다.
● 메인 모듈(Main Module)
별도의 메인 함수가 따로 없습니다.
.py 로 되어 있으면 수행하는 인터프린트 언어입니다.
- ‘최상위 수준(Top Level)’에서 실행되는 스크립트만 있을 뿐입니다.
- 최상위 수준 실행 -> 명령 프롬프트 창이나 탐색기를 이용하여 파이썬 모듈을 실행하는 것을 말합니다.
- 메인 모듈 : 최상위 수준으로 실행되는 스크립트
__name__
- 내장 전역 변수
- 모듈이 최상위 수준으로 실행 될 때 ‘__main__’으로 지정됩니다.
하위 모듈(Sub Module)
메인 모듈이 import 문을 이용하여 불러오는 모듈
__name__
– 모듈 자체의 이름을 담고 있습니다.
결과(console)
<sub>
<main>
결과(console)
시작하는 모듈에서는 __name__ 에서 __main__으로 출력하고, import 되어 있는 sub 모듈은 이름을 출력합니다.
<sub>
결과 < console >
<main>
결과 <console>
패키지(Package)
: 패키지(package)는 여러 모듈을 묶은 것입니다. 패키지는 기능들이 모듈 여러 개로 잘게 나누어져 있고, 관련된 모듈끼리 폴더에 모여 있는 형태입니다. (모듈의 집합)
● 해당 디렉토리가 파이썬의 패키지로 인식되려면
● _init_,py 파일을 그 경로에 갖고 있어야 함.
● __all__ 변수 조정 : 패키지로부터 반입할 모듈의 목록을 정의하기 위해 사용
pakage를 완성하면 그 안에 _init_.py 파일이 들어가 있습니다. (반드시 들어가 있습니다.)
- 폴더의 위치가 다른 모듈의 함수를 호출 ( 다른 페키지 안에 파일 )
< calculator2 >
< 06_myPackage >
결과 ( console )
- 폴더의 위치가 다른 모듈의 함수를 호출( 패키지 안에 패키지 안에 모듈 )
< calc >
< package2 >
결과 ( console )
'Anaconda > Python' 카테고리의 다른 글
[Python] 클래스(Class - 객체지향) (0) | 2020.07.28 |
---|---|
[Python] 파이참(PyCharm) 다운로드 (0) | 2020.07.28 |
[Python] 함수 (0) | 2020.07.27 |
[Python] 반복문 (while, for) (0) | 2020.07.27 |
[Python] 조건문 (0) | 2020.07.27 |