Your SlideShare is downloading. ×
0
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Python - Module
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Python - Module

1,288

Published on

2 Comments
9 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,288
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
2
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 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아우스터리츠전투
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • ㅇㅇ
  • Transcript

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

    ×