Programming Language/Python

Python : 모듈

GGkeeper 2022. 1. 13. 21:22

##########
## 모듈
##########

변수, 명령어 < 함수 (함수) < 클래스 < 모듈 < 패키지

모듈이란 함수나 변수 또는 클래스들을 모아놓은 파일이다.
모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만들어진 파이썬 파일이다.
모듈은 하나의 파이썬 파일이다.
모듈을 불러들일 때는 import 예약어를 사용한다.
import 할 모듈의 이름은 확장자 .py 가 제거된 파일명만 사용한다.
import 는 현재 디렉토리나 파이썬 라이브러리가 저장된 디렉토리에 있는 모듈만 불러온다.
파이썬 라이브러리 디렉토리를 확인하기 위해서는 sys.path를 확인하면 된다.
모듈 디렉토리는 설정은 환경변수 PYTHONPATH 를 사용한다.
모듈이 불려지면 컴파일된 모듈명.pyc 파일이 생성된다.


-- modulePath.py --
"""
파일명 : modulePath.py
프로그램 설명 : 모듈 디렉터리 확인
"""

import sys
print(sys.path)
-- modulePath.py --


--  moduleA.py --
"""
파일명 : moduleA.py
프로그램 설명 : 모듈 테스트
"""

def printA():
    a = 1
    print(a)

def printB():
    b = 2
    print(b)

# printA()
#printB()

# 직접 이 파일을 실행 : __main__
# 간접 이 파일을 실행 : moduleA
# print(__name__)  

if __name__ == '__main__':
    printA()  # 1
    printB()  # 2
--  moduleA.py --

-- moduleATest.py --
"""
파일명 : moduleATest.py
프로그램 설명 : 모듈 테스트
"""

# 1. 모듈을 불러들인다.
# 형식 : import 모듈명
import moduleA  # moduleA.py를 의미한다.

# 2. 모듈에 있는 함수를 호출(실행) 한다.
# 형식 : 모듈명.함수명()
# 형식 : 모듈명.변수명
# . 은 ~의라고 읽으면 된다.
moduleA.printA() 
moduleA.printB()
-- moduleATest.py --

모듈을 사용하는 방법
1. 모듈을 생성한다.
모듈은 파이썬파일과 동일하고 주로 이 안에는 화면으로 단독으로 출력하는 것은 없어야 한다.
그리고 주로 변수, 함수, 클래스로 만든다.

2. 파이썬 파일에서 모듈을 가져온다.
import 모듈명   <-- .py는 생략한다.
from 모듈명 import 모듈함수
from 모듈명 import *

3. 모듈에 있는 함수, 클래스를 사용한다.
import 모듈명
가능 : 모듈명.함수명()
불가능 : 함수명() 사용할 수 없다.

from 모듈명 import 모듈함수
가능 : 모듈함수()
불가능 : 모듈명.함수명() 사용할 수 없다.

-- moduleATest2.py --
"""
파일명 : moduleATest2.py
프로그램 설명 : 모듈 테스트
"""

# 1. 모듈을 불러들인다.
# 형식 : from 모듈명 import 모듈함수
#from moduleA import *  # moduleA 에 있는 전체 클래스와 함수를 사용할 수 있다.
from moduleA import printA  # moduleA 에 있는 printA() 함수만 사용할 수 있다.

# 2. 모듈에 있는 함수를 호출(실행) 한다.
# 형식 : 함수명()
# 형식 : 변수명

# from 으로 불러들이면 이름 충돌에 주의해야 한다.
def printA():
    print("VSCode Hello")
    
printA() 
# printB()
print('프로그램 종료')
-- moduleATest2.py --

'Programming Language > Python' 카테고리의 다른 글

scapy  (0) 2022.01.13
for 문 테스트 (IP 주소 생성기)  (0) 2022.01.13
Python : 함수  (0) 2022.01.13
[기초] 6-2. 전달값과 반환값  (0) 2021.11.09
[기초] 6-1. 함수  (0) 2021.11.09