21
발표자 공지훈 [email protected] 06.모듈

Python3 6장 모듈만들기

Embed Size (px)

Citation preview

Page 1: Python3 6장 모듈만들기

발표자 공지훈[email protected]

06.모듈

Page 2: Python3 6장 모듈만들기

목차모듈 사용하기모듈 만들기모듈 임포트모듈 임포트 파헤치기유용한팁패키지

Page 3: Python3 6장 모듈만들기

모듈 사용하기

import를 통해서 내장 모듈인 math를 가져온다.그리고 math.내장함수나 데이터를 사용한다.

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

이밖에도 기본적으로 많은 기본 모듈을 제공한다. 그냥 가져다가 import 하고 사용 하면된다.

http://docs.python.org/3.0/library/index.html에 라이브러리에 대한 설명이 있다.

Page 4: Python3 6장 모듈만들기

자주 사용하는 기능을 계속 작성할 필요가 없다.

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

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

모듈 사용시 장점

Page 5: Python3 6장 모듈만들기

모듈 만들기

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

나만의 첫 모듈을 만들어보자(http://min.us/mgsLgRWHr)

실행하면

Page 6: Python3 6장 모듈만들기

모듈 임포트

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

함수를 사용하면 math 모듈이 임포트 됩니다.

Page 7: Python3 6장 모듈만들기

From <모듈> import <어트리뷰트>

Union만 사용할수 있습니다.

Set 모듈에서 union이름을 가진 함수를 임포트

주소가 바뀌어 있습니다.Simpleset 모듈의 함수가 실행됩니다.

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

Page 8: Python3 6장 모듈만들기

From <모듈> import *

모듈내 이름중 밑줄(_)로 시작하는 어트리뷰트(함수,데이터)를 제외하고 모든 어트리뷰트를 현재의 이름공간으로 임포트한다.

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

Simpleset 모듈을 임포트합니다.

Page 9: Python3 6장 모듈만들기

Import <모듈> as <별칭>

Xml.sax.handler를 handle라는 임포트합니다.

“<모듈>이름을 <별칭>으로 변경하여 임포트합니다.이 방법은 모듈 이름이 길거나 어떤 모듈을 다른 이름으로 참조하고자 할 때 사용합니다.”

Page 10: Python3 6장 모듈만들기

모듈 임포트 파헤치기*.py는 파이썬 텍스트 소스파일이다.*.pyc는 컴파일된 파이썬 바이너리파일이다.*.pyo는 최적화된(Optimized) 컴파일된 파이썬 바이너리파일이다

import를 하면 해당 py의 이름 따르는 pyc 확장자 파일이 생김.

Page 11: Python3 6장 모듈만들기

모듈 임포트 파헤치기Testmodule : http://min.us/muqhhxvFJ

모듈을 임포트합니다.

Testmodule.py

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

재시작하고 실행하면된다.

Page 12: Python3 6장 모듈만들기

번거롭다!!

135p 안되는데?!

Page 13: Python3 6장 모듈만들기

‘__main__’을 사용한 유용한 팁Mymod.py

그렇다면 import할때랑 그냥 명령어로 실행했을때랑 다르게 하는 방법은?

Page 14: Python3 6장 모듈만들기

‘__main__’을 사용한 유용한 팁

Python명령어로 직접 입력

import로 입력

결과가 틀리다.

Testmodule2.py http://min.us/mqZ9ApYAI

Page 15: Python3 6장 모듈만들기

패키지의 정의

- 패키지는 모듈이름에 ‘.’을 붙여서 모듈 이름 구조를

구조화하는 방법중에 하나

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

- __init__.py에는 패키지를 초기화하는 코드들이 있다.

Page 16: Python3 6장 모듈만들기

xml패키지로 알아보자- /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/xml

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

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

Xml.dom 을 따로 임포트 시도합니다.

Page 17: Python3 6장 모듈만들기

패키지 사용법

Xml __version__ 과 MINIMUM_XMLPLUS_VERSION이 없다.??

xml패키지 사용법패키지 import후 별명을 준후 사용한다.

Page 18: Python3 6장 모듈만들기

패키지 는 한모듈 하나만

Page 19: Python3 6장 모듈만들기

패키지 안에서 패키지 안의 모듈참조

Page 20: Python3 6장 모듈만들기

Q & A

Page 21: Python3 6장 모듈만들기

감사합니다.