SlideShare a Scribd company logo
1 of 21
Download to read offline
06.모듈




        발표자 공지훈
        sagehoon@gmail.com
목차
모듈 사용하기
모듈 만들기
모듈 임포트
모듈 임포트 파헤치기
유용한팁
패키지
모듈 사용하기
                       import를 통해서 내장 모듈인 math를 가져온다.
                       그리고 math.내장함수나 데이터를 사용한다.




           dir을 통해서 모듈에 어떤함수가 있는지 확인가능하다.

이밖에도 기본적으로 많은 기본 모듈을 제공한다.
그냥 가져다가 import 하고 사용 하면된다.
 http://docs.python.org/3.0/library/index.html에 라이브러리에 대한 설명이 있다.
모듈 사용시 장점
 자주 사용하는 기능을 계속 작성할 필요가 없다.

 코드를 이름공간으로 구분하고 관리할수가 있다.

 1.math라는 모듈을 임포트하면 math 이름 공간이 생성된다
 2.생성된 이름공간에 math의 함수 데이터들이 등록된다.
 3. 일단 모듈을 가져오면 math.attribute_name과 같은 형식으로
 모듈의 함수나 어트리뷰트를 사용할수가 있습니다.
모듈 만들기
 나만의 첫 모듈을 만들어보자
 (http://min.us/mgsLgRWHr)

 파이썬 모듈의 경로(MAC OSX SnowLeopard) 로 파일을 옮기자
 /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2

 실행하면
모듈 임포트

      파이썬에서는 어디서나 import 를 사용할수 있다.

     함수를 사용하면 math 모듈이 임포트 됩니다.
From <모듈> import <어트리뷰트>

                Union만 사용할수 있습니다.




                   Set 모듈에서 union이름을 가진 함수를 임포트
                     주소가 바뀌어 있습니다.
          Simpleset 모듈의 함수가 실행됩니다.


 <모듈>의 <어트리뷰트>만 쓰겟다는 얘기
From <모듈> import *


               파이썬을 종료했다가 다시 실행합니다.



                      Simpleset 모듈을 임포트합니다.




 모듈내 이름중 밑줄(_)로 시작하는 어트리뷰트(함수,데이터)를
 제외하고 모든 어트리뷰트를 현재의 이름공간으로 임포트한다.
Import <모듈> as <별칭>
                Xml.sax.handler를 handle라는 임포트합니다.




 “<모듈>이름을 <별칭>으로 변경하여 임포트합니다.
 이 방법은 모듈 이름이 길거나 어떤 모듈을 다른 이름으로 참조하
 고자 할 때 사용합니다.”
모듈 임포트 파헤치기
*.py는 파이썬 텍스트 소스파일이다.
*.pyc는 컴파일된 파이썬 바이너리파일이다.
*.pyo는 최적화된(Optimized) 컴파일된 파이썬 바이너리파일이다

import를 하면 해당 py의 이름 따르는 pyc 확장자 파일이 생김.
모듈 임포트 파헤치기
 Testmodule : http://min.us/muqhhxvFJ
                        모듈을 임포트합니다.




Testmodule.py

(소스를 변경한다.)                             (바뀐게 없다.)



재시작하고 실행하면된다.
번거롭다!!




135p 안되는데?!
‘__main__’을 사용한 유용한 팁
 Mymod.py




 그렇다면 import할때랑 그냥 명령어로 실행했을때랑
 다르게 하는 방법은?
‘__main__’을 사용한 유용한 팁

                      Python명령어로 직접 입력


                      import로 입력

                      결과가 틀리다.


 Testmodule2.py
 http://min.us/mqZ9ApYAI
패키지의 정의
- 패키지는 모듈이름에 ‘.’을 붙여서 모듈 이름 구조를

구조화하는 방법중에 하나

- 패키지 디렉토리 에는 __init__.py파일이 꼭 있다.

- __init__.py에는 패키지를 초기화하는 코드들이 있다.
xml패키지로 알아보자
- /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/xml



xml을 열어보면
dom을 삭제하고임포트해보면




                                     dom은 임포트 되지 않았습니다.



                                               Xml.dom 을 따로 임포트 시도합니다.
패키지 사용법

Xml __version__ 과
MINIMUM_XMLPLUS_VERSION이 없
다.??

xml패키지 사용법
                      패키지 import후 별명을 준후 사용한다.
패키지 는 한모듈 하나만
패키지 안에서 패키지 안의 모듈참조
Q&A
감사합니다.

More Related Content

Similar to Python3 6장 모듈만들기

XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개XpressEngine
 
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014승엽 신
 
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기승엽 신
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
오픈세미나 플러그인만들기
오픈세미나 플러그인만들기오픈세미나 플러그인만들기
오픈세미나 플러그인만들기승훈 오
 
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in KoreanRHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in KoreanJun Hee Shin
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈Yong Joon Moon
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XpressEngine
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해Dong Hyun Kim
 
이펙티브 C++ (7~9)
이펙티브 C++ (7~9)이펙티브 C++ (7~9)
이펙티브 C++ (7~9)익성 조
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13Shin heemin
 
Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준HoJun Sung
 

Similar to Python3 6장 모듈만들기 (20)

18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
 
Python module
Python modulePython module
Python module
 
08 모듈
08 모듈08 모듈
08 모듈
 
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
XECon2015 :: [3-2] 오승훈 - XE3 플러그인 제작 소개
 
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
거 XE 모듈 개발하기 좋은 날씨네 - XECon + PHPFest 2014
 
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
XE 모듈 개발 - 걸음마부터 날기까지 - 걷기
 
Haskell study 7
Haskell study 7Haskell study 7
Haskell study 7
 
Python - Module
Python - ModulePython - Module
Python - Module
 
Maven
MavenMaven
Maven
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
오픈세미나 플러그인만들기
오픈세미나 플러그인만들기오픈세미나 플러그인만들기
오픈세미나 플러그인만들기
 
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in KoreanRHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈
 
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
XE 오픈 세미나(2014-04-26) - 김동현 "XE 코어 구조론"
 
Xe 구조에 대한 이해
Xe 구조에 대한 이해Xe 구조에 대한 이해
Xe 구조에 대한 이해
 
이펙티브 C++ (7~9)
이펙티브 C++ (7~9)이펙티브 C++ (7~9)
이펙티브 C++ (7~9)
 
Atom package part1
Atom package part1Atom package part1
Atom package part1
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13
 
Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준
 
5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 

More from Jihoon Kong

Python3 10장 문자열이야기
Python3 10장 문자열이야기Python3 10장 문자열이야기
Python3 10장 문자열이야기Jihoon Kong
 
Python3 11장 날짜이야기
Python3 11장 날짜이야기Python3 11장 날짜이야기
Python3 11장 날짜이야기Jihoon Kong
 
Iphone Core location
Iphone Core locationIphone Core location
Iphone Core locationJihoon Kong
 
코어 로케이션
코어 로케이션코어 로케이션
코어 로케이션Jihoon Kong
 
10장 아이패드에 대한 고려사항
10장 아이패드에 대한 고려사항10장 아이패드에 대한 고려사항
10장 아이패드에 대한 고려사항Jihoon Kong
 
Beginning iphone 4_devlopement_chpter7_tab_b
Beginning iphone 4_devlopement_chpter7_tab_bBeginning iphone 4_devlopement_chpter7_tab_b
Beginning iphone 4_devlopement_chpter7_tab_bJihoon Kong
 

More from Jihoon Kong (6)

Python3 10장 문자열이야기
Python3 10장 문자열이야기Python3 10장 문자열이야기
Python3 10장 문자열이야기
 
Python3 11장 날짜이야기
Python3 11장 날짜이야기Python3 11장 날짜이야기
Python3 11장 날짜이야기
 
Iphone Core location
Iphone Core locationIphone Core location
Iphone Core location
 
코어 로케이션
코어 로케이션코어 로케이션
코어 로케이션
 
10장 아이패드에 대한 고려사항
10장 아이패드에 대한 고려사항10장 아이패드에 대한 고려사항
10장 아이패드에 대한 고려사항
 
Beginning iphone 4_devlopement_chpter7_tab_b
Beginning iphone 4_devlopement_chpter7_tab_bBeginning iphone 4_devlopement_chpter7_tab_b
Beginning iphone 4_devlopement_chpter7_tab_b
 

Python3 6장 모듈만들기

  • 1. 06.모듈 발표자 공지훈 sagehoon@gmail.com
  • 2. 목차 모듈 사용하기 모듈 만들기 모듈 임포트 모듈 임포트 파헤치기 유용한팁 패키지
  • 3. 모듈 사용하기 import를 통해서 내장 모듈인 math를 가져온다. 그리고 math.내장함수나 데이터를 사용한다. dir을 통해서 모듈에 어떤함수가 있는지 확인가능하다. 이밖에도 기본적으로 많은 기본 모듈을 제공한다. 그냥 가져다가 import 하고 사용 하면된다. http://docs.python.org/3.0/library/index.html에 라이브러리에 대한 설명이 있다.
  • 4. 모듈 사용시 장점 자주 사용하는 기능을 계속 작성할 필요가 없다. 코드를 이름공간으로 구분하고 관리할수가 있다. 1.math라는 모듈을 임포트하면 math 이름 공간이 생성된다 2.생성된 이름공간에 math의 함수 데이터들이 등록된다. 3. 일단 모듈을 가져오면 math.attribute_name과 같은 형식으로 모듈의 함수나 어트리뷰트를 사용할수가 있습니다.
  • 5. 모듈 만들기 나만의 첫 모듈을 만들어보자 (http://min.us/mgsLgRWHr) 파이썬 모듈의 경로(MAC OSX SnowLeopard) 로 파일을 옮기자 /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2 실행하면
  • 6. 모듈 임포트 파이썬에서는 어디서나 import 를 사용할수 있다. 함수를 사용하면 math 모듈이 임포트 됩니다.
  • 7. From <모듈> import <어트리뷰트> Union만 사용할수 있습니다. Set 모듈에서 union이름을 가진 함수를 임포트 주소가 바뀌어 있습니다. Simpleset 모듈의 함수가 실행됩니다. <모듈>의 <어트리뷰트>만 쓰겟다는 얘기
  • 8. From <모듈> import * 파이썬을 종료했다가 다시 실행합니다. Simpleset 모듈을 임포트합니다. 모듈내 이름중 밑줄(_)로 시작하는 어트리뷰트(함수,데이터)를 제외하고 모든 어트리뷰트를 현재의 이름공간으로 임포트한다.
  • 9. Import <모듈> as <별칭> Xml.sax.handler를 handle라는 임포트합니다. “<모듈>이름을 <별칭>으로 변경하여 임포트합니다. 이 방법은 모듈 이름이 길거나 어떤 모듈을 다른 이름으로 참조하 고자 할 때 사용합니다.”
  • 10. 모듈 임포트 파헤치기 *.py는 파이썬 텍스트 소스파일이다. *.pyc는 컴파일된 파이썬 바이너리파일이다. *.pyo는 최적화된(Optimized) 컴파일된 파이썬 바이너리파일이다 import를 하면 해당 py의 이름 따르는 pyc 확장자 파일이 생김.
  • 11. 모듈 임포트 파헤치기 Testmodule : http://min.us/muqhhxvFJ 모듈을 임포트합니다. Testmodule.py (소스를 변경한다.) (바뀐게 없다.) 재시작하고 실행하면된다.
  • 13. ‘__main__’을 사용한 유용한 팁 Mymod.py 그렇다면 import할때랑 그냥 명령어로 실행했을때랑 다르게 하는 방법은?
  • 14. ‘__main__’을 사용한 유용한 팁 Python명령어로 직접 입력 import로 입력 결과가 틀리다. Testmodule2.py http://min.us/mqZ9ApYAI
  • 15. 패키지의 정의 - 패키지는 모듈이름에 ‘.’을 붙여서 모듈 이름 구조를 구조화하는 방법중에 하나 - 패키지 디렉토리 에는 __init__.py파일이 꼭 있다. - __init__.py에는 패키지를 초기화하는 코드들이 있다.
  • 16. xml패키지로 알아보자 - /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/xml xml을 열어보면 dom을 삭제하고임포트해보면 dom은 임포트 되지 않았습니다. Xml.dom 을 따로 임포트 시도합니다.
  • 17. 패키지 사용법 Xml __version__ 과 MINIMUM_XMLPLUS_VERSION이 없 다.?? xml패키지 사용법 패키지 import후 별명을 준후 사용한다.
  • 19. 패키지 안에서 패키지 안의 모듈참조
  • 20. Q&A