1 모듈
함수나 변수 또는 클래스들을 모아 놓은 파일을 말한다.
기능 단위로 만든 파이썬의 파일을 일컫는다. 우리는 다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고 직접 만들어서 사용할 수도 있다.
ex) random 클래스
>>> import sys
>>> sys.path # 모듈들을 어디서부터 불러오는지 확인할 수 있다.
sys : 인터프리터가 제공하는 변수들과 함수들을 제어할 수 있도록 처리 해주는 모듈이다.
위와 같이 작성하면 모듈의 주소가 뜬다.
C드라이브 user -> AppData -> Local -> Programs -> Python -> Lib
파일 탐색기에서 위로 들어가면 여러가지 기능을 구연해 놓은 라이브러리가 집합되어있다.
(이는 프로그램 설치시 저장 경로에 따라 달라질 수 있음.)
# random 라이브러리
# sqlite3 데이터베이스 라이브러리
# tkinter 그래픽 구현 인터페이스
# 등등
이것들이 바로 모듈이다.
모듈의 사용 방법은 다음과 같다.
import 모듈명 # 모듈을 사용하겠다고 알려주는 것이다.
2 import as
모듈 명이 너무 길어서 새로운 이름을 정의해줄때 사용하는 명령어이다.
import 모듈명 as 새로운명(별명)
다음과 같이 사용해준다.
>>> import random as r
>>> r.randint(1,6)
3
random 대신 r로 사용해줄 수 있다.
# 다음은 import as 를 사용하여 모듈명을 재정의하고 모듈 내의 요소들을 사용하는 프로그램이다.
# 모듈로 사용할 파일을 다음과 같이 생성해준다.
# 각 다른 타입의 변수들 , 함수 , 계산기 클래스와 메서드
# 다음은 모듈을 불러와 실행할 파일을 다음과 같이 작성해 주었다.
3
파이썬
[1, 2, 3, 4]
1000
모듈입니다.
10
a*b = 12
a-b = -5
>>>
import as 를 통해 모듈 Day6_mod1를 불러오고 mod1으로 정의해준다.
그리고 나서 int_a를 바로 호출해주면 에러가 발생한다. import해준 모듈파일의 경로를 알려주지 않았기 때문이다.
따라서 int_a를 호출해줄 경우 mod1.int_a로 작성해 주어야 한다.
일단 print(int_a)부분을 주석처리 해두고, 모듈 내의 데이터를 변경할 수도 있다. mod1의 int_a 를 1000으로 재정의 해주고 print()로 출력해보면 int_a의 값이 1000으로 출력되는 것을 확인할 수 있다.
그리고 다음 함수의 호출과 클래스의 호출도 확인할 수 있다.
클래스의 호출을 통해 mod1의 Calc클래스의 인스턴스를 생성하고 클래스 내의 메서드도 호출해주었다.
3 from import
모듈 안에 있는 함수,변수,클래스명을 다른 모듈에 포함하는 명령어 이다.
from 모듈명 import 함수 or 변수 or 클래스명
# 다음은 Day6_mod1 모듈 내의 변수 int_a 를 import해주었다.
3
Traceback (most recent call last):
File "C:/pjs/Python/Day6_mod3.py", line 8, in module>
print(string_b)
NameError: name 'string_b' is not defined
>>>
위와 같이 3출력이후 string_b 가 명시되어있지 않다고 NameError가 발생한다.
이는 Day6_mod1 모듈 내의 변수 int_a 만을 import 해주었기 때문이다.
따라서 Day6_mod1모듈 내의 모든 요소를 import하겠다는 뜻으로 다음과 같이 작성해준다.
3
파이썬
[1, 2, 3, 4]
모듈입니다.
10
a*b = 12
a-b = -5
>>>
(*)를 통해 Day6_mod1 모듈 내의 모든 요소를 import 해주었기 때문에 위와 같이 오류없이 내용을 실행한 모습을 볼 수 있다.
'Python' 카테고리의 다른 글
[Python 기초] 파이썬 파일 다루기 - 쓰기 : open() , write() , close() (0) | 2021.04.05 |
---|---|
[Python 기초] 파이썬 모듈 - sys.path 와 path.append() / 패키지 (packge) (0) | 2021.04.04 |
[Python 기초] 파이썬 예외처리 - finally , raise , StopIteration 에러 (0) | 2021.04.03 |
[Python 기초] 파이썬 예외처리(try~ except) / 예외처리 클래스 (Exception) (0) | 2021.04.03 |
[Python 기초] 파이썬 클래스 - 상속, 다중 상속 (0) | 2021.04.03 |
댓글