• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Python - Module
 

Python - Module

on

  • 1,198 views

 

Statistics

Views

Total Views
1,198
Views on SlideShare
1,198
Embed Views
0

Actions

Likes
3
Downloads
17
Comments
2

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • http://coverclock.blogspot.kr/2006/05/total-cost-of-code-ownership.html
  • http://blog.daum.net/byulih_vincent/4935777
  • http://blog.naver.com/bunyman?Redirect=Log&logNo=60053926892아우스터리츠전투
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ

Python - Module Python - Module Presentation Transcript

  • Python - Module
  • 이번 시간에 다룰 것들.• 변화..• 모듈은 왜 필요할까?• 야구 게임 – 핵심 기능을 다른 회사가 사겠데! – 파일의 한계 – 해커가 고장낸 시스템을 고쳐라• Sublime Text2 셋팅하기
  • 시간이 흐르면..슈퍼 마리오도..
  • 배트맨도 변한다.
  • 사장님 아니..고객의 마음도..
  • 하드웨어도..
  • 소프트웨어 생명주기별 비용 Requirements Specificiation 2% 5% Design 6% Coding 5% Unit Testing 7% Maintenance 67% Intergration 8% 출처 - http://bit.ly/VRFE7Q
  • 2. 왜 모듈화가 중요한가? 일리노이 공대 S.R. Crown Hall http://bit.ly/VQyYMt
  • 분할후 정복
  • 복잡한 문제는
  • 분할후 정복 (Separation of Concerns)
  • 부분적인 요구사항이 바뀌었어요.
  • 사고가 났어요..
  • 3. 모듈화사장님 말씀하시길..“여러분이 만든 야구게임은 너무 멋있어! 인기가 좋아!! 그래서 유명 게임사에게 핵심 기능을 팔기로 했네.”
  • 이번 수업을 마치면..• 라이브러리를 만들수 있다. – 코드를 다른 파일로 분할 (모듈화) 한다.• 모듈간에 충돌을 피해라. – 완전 수식 명칭 (Fully Qualified Name – FQN) 사용.
  • 이번 수업의 시나리오.• 함수가 너무 많아. 함수를 다른 파일에 저장해 보자 – 다른 파일에 있는 함수를 어떻게 불러오지?• 새로운 요구사항 – 다른 파일에 있는 함수에 데이터를 넘겨주기 – 쌍둥이 함수의 다툼
  • 3-1. 라이브러리 구축하기
  • 먼저 훈남! 박재성 교수님의 야구 소스 받기• http://bit.ly/YiaSVc 에서 python 소스를 받으세요
  • 함수부 소스 코드의 구성구현부
  • 사장님 말씀하시길..음 다행히 잘 함수로 나누어 져 있군!!아주 빨리 모듈화 시킬수 있겠는데.
  • 새로운 파일 “python_module.py” 만들기 이 내용을 복사(Cmd+C)해서 Python_module.py에 붙여넣기 (Cmd+V)
  • 그럼 원본 파일은?
  • 안돌아 갑니다..
  • 난 다른 파일에 있는 함수를 쓰고 싶어from [참조하고자 하는 파일이름] import *from python_module import *• * 의 의미는?  모든걸 다 참조 하겠다.• 즉 python_module파일에 있는 모든 것을 가져오겠다!
  • 다른 파일(라이브러리)를 참조하겠어요!
  • 라이브러리 (Library)??도서관?어중이 떠중이 함수가 아니라,아주 많이~~~ 재활용 되는 함수(?)들의 모임
  • 이야!!나도 라이브러리를 만들수 있게되었어!!
  • 3-2. 한계(파일)를 뛰어넘는 값 전달
  • 고객사가 화가났어! 고객사에서. 자네가 준 라이브러리 중에 가장 중요한 기능이 빠졌다고 난리네. 실제 점수와 사용자가 입력하는 점수를 평가하는 기능이 없다고 하는군..
  • 이게 빠졌군!! 넣어보자..
  • evaluate 함수를 넣어는데…
  • 원인은..randomValues 정의. randomValues 사용하는 곳. 사용 변 수 라이브러리 Baseball.py python_moudle.py
  • 에러의 원인#Baseball.pyevaluate(index, inputValues[index])#Python_module.pydef evaluate(index, inputValue): for m in range(3): randomValue = randomValues[m] if isSameValue(randomValue, inputValue): if isSameIndex(m, index): return 2 else: return 1
  • 해결책#Baseball.pyevaluate(index, inputValues[index],randomValues)#Python_module.pydef evaluate(index, inputValue, tempvalues): for m in range(3): randomValue = tempvalues[m] if isSameValue(randomValue, inputValue): if isSameIndex(m, index): return 2 else: return 1
  • 해결책
  • 사장님 말씀하시길..고객사가 멋진 야구게임 라이브러리를 주어서매우 만족한다고 하네..역시 넌 자넨 최고의 프로그래머야!
  • 3-3. 해커의 칩입!
  • 프로그램을 실행시키니..3개의 숫자를 입력하세요?(예 2,3,4)2,3,4바이러스다..바이러스다..바이러스다..[2, 3, 4]0 strike, 0 ball
  • 소스코드 비교분석 바이러스 공격당한 Baseball.py Baseball.py
  • 두개의 Evaluate가 생겼다. Baseball.py python_moudle.py
  • 두개의 마이클..
  • 두개의 evaluate 함수 야구장에서 뱀골에서철수를 부르면. 철수를 부르면. evaluate evaluate Baseball.py python_moudle.py
  • 당연히.먼 주먹(다른 파일에 있는 함수)보다..가까운 주먹(같은 파일에있는 함수)을조심(먼저 호출하겠죠)해야죠..
  • 명시적으로 이름을 다 적는다.FQN (Fully Qualified Name) 을 사용해라.import 라이브러리라이브러리.함수 (어쩌고 저쩌고)
  • 해결책 (명시적으로 전체이름 쓰기)
  • 사장님 말씀하시길..“해커가 고장낸 야구게임도 이렇게 빠르게고치다니! 차주부터 1주일 휴가를 다녀오게! 고맙네!”
  • 정리• 모듈의 필요성 – 시간이 흐르면 다 바뀐다. 확장성등..• 다른 사람도 쓸수 있게 잘 만들어라 (라이브러리)• 파일의 경계를 넘어서라 (from.. Import *)• 인자(파라메터를 통한 전달)• 전체이름으로 부르면 중복된 함수도 걱정 끝!• 1주일동안 푹 쉬고 오세요!
  • 부록 A. Sublime Text2 셋팅하기 이제 나도 좀 간지나게(??) 개발해 보고 싶어요!!
  • A-1. Package Control 설치• http://bit.ly/wgKqFq 로 접속한다 Cmd+C 눌려서 복사
  • Console 창 뛰우기• Ctrl + ` (1 왼쪽에 있어여) 를 누른다 Cmd+V 눌려서 붙이기 그리고 Enter
  • 재실행 시키기
  • A-2. 사이드바 설치하기 Cmd+Shift+P 라고 치면아래와 같은 드랍박스가 나옵니다.
  • 사이드바 설치하기Inst 라고치면 Install Package가 나와요 선택하거나 Enter!
  • 사이드바 설치하기SidebarEnhancements 라고 치고 Enter
  • A-3. 사이드바 사용하기 메뉴 – File – Open 가서소스코드가 있는 디렉토리 선택
  • 사이드바 사용하기사이드바에 나온 폴더를 하나 찍고 Ctrl + 마우스 클릭 하면..
  • A-4. 파이썬 개발환경 셋팅 Cmd+Shift+P 를 친후 PackageControl : Add Repository 라고 치기
  • 파이썬 개발환경 셋팅 Cmd+Shift+P 를 친후 PackageControl : Add Repository 라고 치기
  • 파이썬 개발환경 셋팅 다음 페이지 주소 치기
  • 파이썬 개발환경 셋팅https://github.com/wuub/SublimeREPL
  • 파이썬 개발환경 셋팅 Cmd+Shift+P 를 친후Inst 라고 Install Package 실행
  • 파이썬 개발환경 셋팅 SublimeREPL 설치
  • 파이썬 개발환경 셋팅메뉴에서 View – Layout – Columns2 선택
  • 파이썬 개발환경 셋팅 메뉴에서Tools-SublimeREPL-Python-Python 선택
  • 파이썬 개발환경 셋팅
  • 파이썬 개발환경 셋팅 *REPL* [python] 창에서execfile(“여러분의실행파일”) 을 치세요 예 - execfile(“baseballgame.py”)
  • 파이썬 개발환경 셋팅