티스토리 뷰
▶ Python 에서의 모듈은 함수나 변수, 클래스 등을 모아 놓은 파일
▶ 기능 단위로 만든 python 파일로서, 라이브러리 역할을 함
▶ 사용자가 만들어서 추가할 수도 있고, 외부에서 받은 파일도 사용할 수 있다.
▶ 기본 Python 의 기능을 확장하기 위하여 사용
1. Module 구성
▶ Module 은 Python 파일 단위로 구성된다.
▶ 파일의 이름이 모듈의 이름이 된다.
▶ 파일에 포함된 Python 함수와 변수가 모듈의 요소가 된다.
1-1. Module 사용하기
→ import 모듈_파일_이름
1) Module .py저장
def mod_function():
print("module Function Test")
mod_int=3
mod_list=[1,2,3,4]
2) 모듈 불러오기
>>> import Module
>>> Module.mod_function()
3) 불러온 모듈
module Function Test
>>>
----실습
import Module
Module.mod_function()
print("Mod lnteger:",Module.mod_int)
print("Mod List:",Module.mod_list)
= RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/Module_test.py =
module Function Test
Mod lnteger: 3
Mod List: [1, 2, 3, 4]
>>>
------실습2
<add_mul.py> 저장
def add(a,b):
print("Add:",a,b,"",a+b)
return a+b
def mul(a,b):
print("Mul:",a,b,"",a*b)
return a*b
<import 불러오기>
import add_mul
add_mul.add(10,2)
add_mul.mul(2,5)
== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/test mul.py ==
Add: 10 2 12
Mul: 2 5 10
>>>
→ 파일 하나씩 라이브러리로 만들어서 사용할 수 있음
→ 주로 설명문을 넣어서 언제봐도 알 수 있도록 만들어 놓음
1-2. Module 사용 하는 다른 방법
→ from 모듈_파일_이름 import 모듈_함수이름, 모듈변수
from Module import mod_function, mod_int, mod_list
mod_function()
print("Mod:", mod_int)
print("Mod List:", mod_list)
== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/test mul.py ==
module Function Test
Mod: 3
Mod List: [1, 2, 3, 4]
>>>
1-3. Module 내 Class 사용하기
<class_mod 저장>
class Calc :
def add(self,a,b):
print("Add:",a,b,"",a+b)
return a+b
def mul(self,a,b):
print("Mul:",a,b,"",a*b)
return a*b
<불러오기>
import class_mod
a=class_mod.Calc()
a.add(10,32)
a.mul(3,9)
<결과>
>>>
== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/test mul.py ==
Add: 10 32 42
Mul: 3 9 27
>>>
1-4. Module 파일의 동작
__name__ → 파이썬이 내부적으로 만든 변수/기능
파일 내부에서 __name__ 이라는 변수는 파일의 이름을 저장
if __name__ == "__main__"
--> 직접 파일을 실행 시켰을 때 : 참이되어 if 문 다음 문장들이 수행
--> 반대로 대화형 인터프리터나 다른 파일에서 모듈을 불러 사용 할 때 거짓이 되어 if문 다음 문장들이 수행되지 않음
<name_mod 저장>
def add(a,b):
print("Add:",a,b,"",a+b)
return a+b
def mul(a,b):
print("Mul:",a,b,"",a*b)
return a*b
if __name__ == ("__main__"):
add(10,3)
mul(2,4)
<불러오기>
import name_mod
if __name__ == ("__main__"):
name_mod.add(10,3)
name_mod.mul(5,6)
== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/test mul.py ==
Add: 10 3 13
Mul: 5 6 30
>>>
<name_mod 저장>
def add(a,b):
print("Add:",a,b,"",a+b)
return a+b
def mul(a,b):
print("Mul:",a,b,"",a*b)
return a*b
if __name__ == ("__main__"):
add(10,3)
mul(2,4)
else :
print("Name:",__name__)
<불러오기>
import name_mod
if __name__ == ("__main__"):
name_mod.add(10,3)
name_mod.mul(5,6)
else :
print("Name:",__name__)
== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/test mul.py ==
Name: name_mod
Add: 10 3 13
Mul: 5 6 30
>>>
-----다른방법 print추가
import name_mod
if __name__ == ("__main__"):
print("Name:",__name__)
name_mod.add(10,3)
name_mod.mul(5,6)
else :
print("Name:",__name__)
== RESTART: C:/Users/해니/AppData/Local/Programs/Python/Python36/test mul.py ==
Name: name_mod
Name: __main__
Add: 10 3 13
Mul: 5 6 30
>>>
1-5. Python 의 모듈 폴더 확인
▶ 기본적인 import 는 소스와 동일한 폴더의 모듈만 로딩 가능
▶ Python 에서는 기본적인 Path 가 저장
sys - 라이브러리 모듈
- 파이썬 라이브러리가 설치되어 있는 디렉터리를 확인 가능
sys.path - 라이브러리들이 설치되어 있는 디렉터리를 보여 줌
>>> import sys
>>> sys.path
['', 'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-
32\\Lib\\idlelib',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-
32\\python36.zip',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32\\lib',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\sitepackages']
>>>
1-6. Python 모듈 폴더 추가
sys.path.append - 디렉터리를 sys.path 에 추가
>>> import sys
>>> sys.path.append("D:\Python\Exam")
>>> sys.path
['', 'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-
32\\Lib\\idlelib',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-
32\\python36.zip',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32\\lib',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32',
'C:\\Users\\yongs\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\sitepackages',
'D:\\Python\\Exam']
>>> import mod_test
>>>
▶ 모듈보다 큰 개념
▶ 파일들의 단위
▶ 폴더별로 통째로 가지고 올 수 있음
--> 편리하게 사용가능
(Module--> 하나의 파일 가져옴 )
(* game, sound, graphic, play --> 디렉터리명
.py 확장자를 가진 파일 --> 파이썬 모듈 )
2. Package 의 사용
<echo 저장>
def echo_test():
print ("echo")
>>> import game.sound.echo
>>> game.sound.echo.echo_test()
echo
>>> from game.sound import echo
>>> echo.echo_test()
echo
>>> from game.sound.echo import echo_test
>>> echo_test()
echo
2-1. __init__.py
▶ 해당 폴더가 패키지의 일부임을 알려주는 역할
▶ Python 2.x 버전에서는 __init__.py 가 없으면 패키지로 인식이 안됨
▶ Python 3.3 버전 부터는 해당 파일이 없어도 인식가능
▶ 하위 호환을 위해서 사용
참고
수업 ppt
'Programing > Python' 카테고리의 다른 글
Python - 14. 예외처리 (0) | 2017.03.30 |
---|---|
Python - 13. 파일처리 (0) | 2017.03.30 |
Python - 11. class 활용 (0) | 2017.03.28 |
Python - 10. class 기초 (0) | 2017.03.27 |
Python 실습 (0) | 2017.03.25 |