티스토리 뷰

▶ 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함