SlideShare a Scribd company logo
2013190714
김명준
소프트웨어 융합전공
파이썬
함수
 함수의 목적은 코드의 재사용
 반복하면서 코드를 짜지 않고 함수를 통해서
코드를 부른다.
 함수는 함수를 정의를 하고 호출을 한다.
함수 - 리턴값
 함수는 방금 처럼 그냥 print()하듯이 코드의 기능
만 할 수도 있으나 return을 통해서 함수가 변수를
나타낼 수도 있다.
함수 - 매개변수
 매번 함수가 필요한 값이 다를 때 매개변수를 사용
하여 값을 줄 수 있다.
함수 - 매개변수
 파이썬에서는 함수의 매개변수에 다른 함수를 삽
입 할 수 있다.
함수 - 재귀함수
 함수가 자기 자신을 부른다.
 계속 자기 자신을 부르기 때문에 끝나는 구간이 존
재해야함
함수 - 내부함수
 함수 내에 또 함수를 선언
 루프나 중복을 피하기 위함
함수 - 람다함수
 이름이 없는 함수
 보통 취향에 따라 사용
 선언 방식은
 Lambda 변수 : 리턴함수
 작은 여럿의 함수를 사용
해야할 경우 용이
제너레이터
 연속된 파이선의 변수의 시퀀스를 생성
 이미 우리는 range라는 시퀀스를 사용
제너레이터 - 구현
* - 위치 인자 모으기
 매개변수로 들어온 남은 모든 인자를 tuple 형태로
모은다.
tuple
 Tuple은 ()의 모양
 ,로 구분하며 원소가 하나일 경우 (1,)의 형태
 tuple(변수) – tuple처럼 생긴 변수를 tuple로 변환
** - 인자 모으기
 매개변수로 들어온 남은 모든 인자를 dictionary 형
태로 모은다.
dictionary
 순서가 아닌 Key의 값으로 구분
 다른 언어에서의 hash와 유사
 Key에 value가 매치되어 있음
 {key:value}의 모양
 dict(변수) – dictionary처럼 생긴 변수를 변환
decorator
 함수를 리턴해주는 함수, 함수의 변환이 용이
응용 - 피보나치 수열
 고등 수학에서의 피보나치
응용 – 피보나치 수열
 https://www.acmicpc.net/problem/10870
 함수로 짜보기
응용 – 피보나치 수열
 https://www.acmicpc.net/problem/2747
 그냥 풀면 시간초과가 나옴
 For 문을 활용
응용 – 피보나치 수열
 https://www.acmicpc.net/problem/1003
 피보나치 문제의 응용
응용 – 매우 큰 피보나치
 https://www.acmicpc.net/problem/2749
 그냥 풀면 시간초과가 나온다.
 피보나치는 특정 주기를 가지고 이를 “피사노 주기”
라고 부른다.
객체(Object)
 객체란 변수와 함수를 포함하는 개념
 객체 하나하나가 실생활에서의 물체와 연관되는
개념
 예시 – 사람
 사람은 이름,성별,나이등의 변수를 가진다.
 사람은 자다,걷다,공부하다,놀다 등의 행동(함수)
을 가질 수 있다.
 명준.name = 명준
 명준.sleeping()
클래스(class)
 객체를 표현하기 위한 개념
 빈 클래스의 모양 – 사람 한명을 선언
클래스(class) - 초기화
 객체 초기화 메서드 __init__, self
 이름을 가지는 클래스 선언
클래스(class) - 상속
 기존 클래스에서 기능만 추가 해야할때
 코드를 수정하긴 힘들어진다.
 이럴 경우 상속을 사용
 기존의 함수에 필요한 기능만 추가/변경하여 새로
운 클래스를 정의
 이런 경우 기존 클래스는 부모(super,parent,base)
클래스라고 부른다.
 새로운 클래스의 경우 자식(child,sub,derived) 클
래스 라고 부른다.
클래스(class) - 상속
 상위 클래스인 Car와 그를 상속받는 Yugo
 상속을 받을 자식 클래스는 자식(상위)의 형태
 자식은 부모 클래스가 가진 모든 기능을 사용할 수
있다.
클래스(class) - 상속
 부모 클래스 Car에 ex라는 함수 부여
 이를 상속받는 Yugo또한 ex라는 함수를 사용가능
클래스(class) – 매서드 오버라이드
 만약 부모와 자식과 같은 이름의 함수가 있다면??
 답은 자식의 함수를 사용 – 메서드 오버라이드
클래스(class) – 메서드 추가하기
 자식은 부모가 없는 메서드를 추가 가능
 이 메서드를 부모는 호출 불가
클래스(class) – super
 자식에서 자신의 메서드가 아닌 부모의 메서드를
사용하고 싶을 경우 super를 통해서 사용
 Init같은 초기화 함수는 자식에서 생성할 경우
더 이상 부모의 Init을 자동으로 사용하지 않아
super를 써야함
메서드 타입
 여지껏 사용한 함수들은 인스턴스 메서드로 일반
적인 메서드, self라는 변수를 받는다.
 이와 다른 함수인 클래스 메서드 존재, 이는 객체
하나하나가 아닌 클래스 전제에 영향을 줌
다형성
 다형성이란 배운것처럼 클래스에서의 같은 메서드
가 여러가지 형태를 지닐 수 있다는 것을 말함
다형성
 Says라는 함수를 가진 Quote클래스를 상속받는
그룹과 전혀 엉뚱한 BabblingBrook이라는 클래스,
 Who_says는 obj라는 것을 받아와 그것의 says와
who를 사용한다.
다형성
 이런 식으로 says라는 함수가 모습이 상속에 따라
모습이 달라질 수 있고 이를 한꺼번에 다룰 수 있
다.
특수 메서드
 원래 형태
 이런 모양인데 equals가 아니라 == 이었으면 좋겠
다.
특수 메서드
 함수를 __eq__ 라고 바꿈
 __eq__ == __floordiv__ //
 __ne__ != __truediv__ /
 __lt__ < __mod__ %
 __gt__ > __pow__ **
 __le__ <= __str__ str()
 __ge__ >= __repr__ repr()
 __add__ + __len__ len()
 __sub__ -
 __mul__ *
문제 풀어보기
 https://www.acmicpc.net/problem/1002
 고등학교 원과 원이 만나는 개수를 구하는 문제
문제 풀어보기
 하노이의 탑
 https://www.acmicpc.net/problem/11729
문제 풀어보기 – 하노이 탑
 한번에 하나를 이동가능
 3개의 위치가 존재
 첫번째 위치에 순차적으로 존재하는 탑을 모양 그
대로 세번째 위치로 움직이는 작업

More Related Content

What's hot

이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디
quxn6
 
모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디
quxn6
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1현찬 양
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1
민태 김
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5
민태 김
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2현찬 양
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshin
Dong Chan Shin
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1현찬 양
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements민태 김
 
디자인 패턴(Observer, visitor)
디자인 패턴(Observer, visitor)디자인 패턴(Observer, visitor)
디자인 패턴(Observer, visitor)
세빈 정
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
Park Jonggun
 
[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿해강
 
9 swift 클로저1
9 swift 클로저19 swift 클로저1
9 swift 클로저1
Changwon National University
 
You don't know JS / this / chapter 1-2
You don't know JS / this / chapter 1-2You don't know JS / this / chapter 1-2
You don't know JS / this / chapter 1-2
Kiwoong Kwon
 
Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준
HoJun Sung
 
Lua script
Lua scriptLua script
Lua script
cancan21st
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2현찬 양
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
Dong Chan Shin
 

What's hot (20)

이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디이펙티브 C++ 5,6 장 스터디
이펙티브 C++ 5,6 장 스터디
 
모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디
 
5 6 1
5 6 15 6 1
5 6 1
 
Effective c++ 1
Effective c++ 1Effective c++ 1
Effective c++ 1
 
비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1비개발자를 위한 Javascript 알아가기 #5.1
비개발자를 위한 Javascript 알아가기 #5.1
 
비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5비개발자를 위한 Javascript 알아가기 #5
비개발자를 위한 Javascript 알아가기 #5
 
Effective c++ 2
Effective c++ 2Effective c++ 2
Effective c++ 2
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshin
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
 
외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements외계어 스터디 2/5 - Expressions & statements
외계어 스터디 2/5 - Expressions & statements
 
디자인 패턴(Observer, visitor)
디자인 패턴(Observer, visitor)디자인 패턴(Observer, visitor)
디자인 패턴(Observer, visitor)
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
 
[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿
 
9 swift 클로저1
9 swift 클로저19 swift 클로저1
9 swift 클로저1
 
You don't know JS / this / chapter 1-2
You don't know JS / this / chapter 1-2You don't know JS / this / chapter 1-2
You don't know JS / this / chapter 1-2
 
Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준Head first디자인패턴 1~13_희민_호준
Head first디자인패턴 1~13_희민_호준
 
Lua script
Lua scriptLua script
Lua script
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
 
Prototype
PrototypePrototype
Prototype
 
Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본Effective c++ chapter3, 4 요약본
Effective c++ chapter3, 4 요약본
 

Viewers also liked

Sales.ppt
Sales.pptSales.ppt
Sales.ppt
Saurabh Gupta
 
страдањата на младиот вертер
страдањата на младиот вертерстрадањата на младиот вертер
страдањата на младиот вертерIle Karov
 
Maken van een lesvoorbereiding
Maken van een lesvoorbereiding Maken van een lesvoorbereiding
Maken van een lesvoorbereiding
gianniverschaete
 
Pre adjusted edgewise appliance (2)
Pre adjusted edgewise appliance (2)Pre adjusted edgewise appliance (2)
Pre adjusted edgewise appliance (2)
Indian dental academy
 
Mechanics sequence for class 2 div 2
Mechanics sequence for  class 2 div 2  Mechanics sequence for  class 2 div 2
Mechanics sequence for class 2 div 2
bilal falahi
 
Google app engine
Google app engineGoogle app engine
Google app engine
Suraj Mehta
 
Ch5 orthodontic assessment Dentistry
Ch5 orthodontic assessment  DentistryCh5 orthodontic assessment  Dentistry
Ch5 orthodontic assessment Dentistry
Cezar Edward Lahham
 
Posterio anterior cephalometric analysis
Posterio anterior cephalometric analysisPosterio anterior cephalometric analysis
Posterio anterior cephalometric analysis
Jasmine Arneja
 

Viewers also liked (8)

Sales.ppt
Sales.pptSales.ppt
Sales.ppt
 
страдањата на младиот вертер
страдањата на младиот вертерстрадањата на младиот вертер
страдањата на младиот вертер
 
Maken van een lesvoorbereiding
Maken van een lesvoorbereiding Maken van een lesvoorbereiding
Maken van een lesvoorbereiding
 
Pre adjusted edgewise appliance (2)
Pre adjusted edgewise appliance (2)Pre adjusted edgewise appliance (2)
Pre adjusted edgewise appliance (2)
 
Mechanics sequence for class 2 div 2
Mechanics sequence for  class 2 div 2  Mechanics sequence for  class 2 div 2
Mechanics sequence for class 2 div 2
 
Google app engine
Google app engineGoogle app engine
Google app engine
 
Ch5 orthodontic assessment Dentistry
Ch5 orthodontic assessment  DentistryCh5 orthodontic assessment  Dentistry
Ch5 orthodontic assessment Dentistry
 
Posterio anterior cephalometric analysis
Posterio anterior cephalometric analysisPosterio anterior cephalometric analysis
Posterio anterior cephalometric analysis
 

Similar to 파이썬 둘째날

[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수
Keunhyun Oh
 
Scala syntax function
Scala syntax functionScala syntax function
Scala syntax function
Yong Joon Moon
 
자바스크립트 함수
자바스크립트 함수자바스크립트 함수
자바스크립트 함수유진 변
 
Scala self type inheritance
Scala self type inheritanceScala self type inheritance
Scala self type inheritance
Yong Joon Moon
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
유리 하
 
Template at c++
Template at c++Template at c++
Template at c++
Lusain Kim
 
[C언어]함수오버로딩과오버라이딩
[C언어]함수오버로딩과오버라이딩[C언어]함수오버로딩과오버라이딩
[C언어]함수오버로딩과오버라이딩
jusingame
 
Scala nested function generic function
Scala nested function generic functionScala nested function generic function
Scala nested function generic function
Yong Joon Moon
 
스파르탄Js in sidejs4
스파르탄Js in sidejs4스파르탄Js in sidejs4
스파르탄Js in sidejs4
Jin-Hyun Park
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1
준영 박
 
OOP - Object Oriendted Programing
OOP - Object Oriendted ProgramingOOP - Object Oriendted Programing
OOP - Object Oriendted Programing
ChangHyeon Bae
 
[2011 04 30]python-3장
[2011 04 30]python-3장[2011 04 30]python-3장
[2011 04 30]python-3장Jong Pil Won
 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
성연 김
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
성연 김
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
Young-Beom Rhee
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13
Shin heemin
 
Python 이해하기 20160815
Python 이해하기 20160815Python 이해하기 20160815
Python 이해하기 20160815
Yong Joon Moon
 
PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약
정아 손
 
Effective c++ chapter 7,8
Effective c++ chapter 7,8Effective c++ chapter 7,8
Effective c++ chapter 7,8문익 장
 

Similar to 파이썬 둘째날 (20)

[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수[SwiftStudy 2016] 3장. 함수
[SwiftStudy 2016] 3장. 함수
 
Scala syntax function
Scala syntax functionScala syntax function
Scala syntax function
 
자바스크립트 함수
자바스크립트 함수자바스크립트 함수
자바스크립트 함수
 
Scala self type inheritance
Scala self type inheritanceScala self type inheritance
Scala self type inheritance
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
 
Template at c++
Template at c++Template at c++
Template at c++
 
[C언어]함수오버로딩과오버라이딩
[C언어]함수오버로딩과오버라이딩[C언어]함수오버로딩과오버라이딩
[C언어]함수오버로딩과오버라이딩
 
Scala nested function generic function
Scala nested function generic functionScala nested function generic function
Scala nested function generic function
 
스파르탄Js in sidejs4
스파르탄Js in sidejs4스파르탄Js in sidejs4
스파르탄Js in sidejs4
 
C# 고급 문법 part 1
C# 고급 문법 part 1C# 고급 문법 part 1
C# 고급 문법 part 1
 
OOP - Object Oriendted Programing
OOP - Object Oriendted ProgramingOOP - Object Oriendted Programing
OOP - Object Oriendted Programing
 
EC 789
EC 789EC 789
EC 789
 
[2011 04 30]python-3장
[2011 04 30]python-3장[2011 04 30]python-3장
[2011 04 30]python-3장
 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
 
프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop프론트엔드스터디 E05 js closure oop
프론트엔드스터디 E05 js closure oop
 
디자인패턴 1~13
디자인패턴 1~13디자인패턴 1~13
디자인패턴 1~13
 
Python 이해하기 20160815
Python 이해하기 20160815Python 이해하기 20160815
Python 이해하기 20160815
 
PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약
 
Effective c++ chapter 7,8
Effective c++ chapter 7,8Effective c++ chapter 7,8
Effective c++ chapter 7,8
 

파이썬 둘째날

  • 2. 함수  함수의 목적은 코드의 재사용  반복하면서 코드를 짜지 않고 함수를 통해서 코드를 부른다.  함수는 함수를 정의를 하고 호출을 한다.
  • 3. 함수 - 리턴값  함수는 방금 처럼 그냥 print()하듯이 코드의 기능 만 할 수도 있으나 return을 통해서 함수가 변수를 나타낼 수도 있다.
  • 4. 함수 - 매개변수  매번 함수가 필요한 값이 다를 때 매개변수를 사용 하여 값을 줄 수 있다.
  • 5. 함수 - 매개변수  파이썬에서는 함수의 매개변수에 다른 함수를 삽 입 할 수 있다.
  • 6. 함수 - 재귀함수  함수가 자기 자신을 부른다.  계속 자기 자신을 부르기 때문에 끝나는 구간이 존 재해야함
  • 7. 함수 - 내부함수  함수 내에 또 함수를 선언  루프나 중복을 피하기 위함
  • 8. 함수 - 람다함수  이름이 없는 함수  보통 취향에 따라 사용  선언 방식은  Lambda 변수 : 리턴함수  작은 여럿의 함수를 사용 해야할 경우 용이
  • 9. 제너레이터  연속된 파이선의 변수의 시퀀스를 생성  이미 우리는 range라는 시퀀스를 사용
  • 11. * - 위치 인자 모으기  매개변수로 들어온 남은 모든 인자를 tuple 형태로 모은다.
  • 12. tuple  Tuple은 ()의 모양  ,로 구분하며 원소가 하나일 경우 (1,)의 형태  tuple(변수) – tuple처럼 생긴 변수를 tuple로 변환
  • 13. ** - 인자 모으기  매개변수로 들어온 남은 모든 인자를 dictionary 형 태로 모은다.
  • 14. dictionary  순서가 아닌 Key의 값으로 구분  다른 언어에서의 hash와 유사  Key에 value가 매치되어 있음  {key:value}의 모양  dict(변수) – dictionary처럼 생긴 변수를 변환
  • 15. decorator  함수를 리턴해주는 함수, 함수의 변환이 용이
  • 16. 응용 - 피보나치 수열  고등 수학에서의 피보나치
  • 17. 응용 – 피보나치 수열  https://www.acmicpc.net/problem/10870  함수로 짜보기
  • 18. 응용 – 피보나치 수열  https://www.acmicpc.net/problem/2747  그냥 풀면 시간초과가 나옴  For 문을 활용
  • 19. 응용 – 피보나치 수열  https://www.acmicpc.net/problem/1003  피보나치 문제의 응용
  • 20. 응용 – 매우 큰 피보나치  https://www.acmicpc.net/problem/2749  그냥 풀면 시간초과가 나온다.  피보나치는 특정 주기를 가지고 이를 “피사노 주기” 라고 부른다.
  • 21. 객체(Object)  객체란 변수와 함수를 포함하는 개념  객체 하나하나가 실생활에서의 물체와 연관되는 개념  예시 – 사람  사람은 이름,성별,나이등의 변수를 가진다.  사람은 자다,걷다,공부하다,놀다 등의 행동(함수) 을 가질 수 있다.  명준.name = 명준  명준.sleeping()
  • 22. 클래스(class)  객체를 표현하기 위한 개념  빈 클래스의 모양 – 사람 한명을 선언
  • 23. 클래스(class) - 초기화  객체 초기화 메서드 __init__, self  이름을 가지는 클래스 선언
  • 24. 클래스(class) - 상속  기존 클래스에서 기능만 추가 해야할때  코드를 수정하긴 힘들어진다.  이럴 경우 상속을 사용  기존의 함수에 필요한 기능만 추가/변경하여 새로 운 클래스를 정의  이런 경우 기존 클래스는 부모(super,parent,base) 클래스라고 부른다.  새로운 클래스의 경우 자식(child,sub,derived) 클 래스 라고 부른다.
  • 25. 클래스(class) - 상속  상위 클래스인 Car와 그를 상속받는 Yugo  상속을 받을 자식 클래스는 자식(상위)의 형태  자식은 부모 클래스가 가진 모든 기능을 사용할 수 있다.
  • 26. 클래스(class) - 상속  부모 클래스 Car에 ex라는 함수 부여  이를 상속받는 Yugo또한 ex라는 함수를 사용가능
  • 27. 클래스(class) – 매서드 오버라이드  만약 부모와 자식과 같은 이름의 함수가 있다면??  답은 자식의 함수를 사용 – 메서드 오버라이드
  • 28. 클래스(class) – 메서드 추가하기  자식은 부모가 없는 메서드를 추가 가능  이 메서드를 부모는 호출 불가
  • 29. 클래스(class) – super  자식에서 자신의 메서드가 아닌 부모의 메서드를 사용하고 싶을 경우 super를 통해서 사용  Init같은 초기화 함수는 자식에서 생성할 경우 더 이상 부모의 Init을 자동으로 사용하지 않아 super를 써야함
  • 30. 메서드 타입  여지껏 사용한 함수들은 인스턴스 메서드로 일반 적인 메서드, self라는 변수를 받는다.  이와 다른 함수인 클래스 메서드 존재, 이는 객체 하나하나가 아닌 클래스 전제에 영향을 줌
  • 31. 다형성  다형성이란 배운것처럼 클래스에서의 같은 메서드 가 여러가지 형태를 지닐 수 있다는 것을 말함
  • 32. 다형성  Says라는 함수를 가진 Quote클래스를 상속받는 그룹과 전혀 엉뚱한 BabblingBrook이라는 클래스,  Who_says는 obj라는 것을 받아와 그것의 says와 who를 사용한다.
  • 33. 다형성  이런 식으로 says라는 함수가 모습이 상속에 따라 모습이 달라질 수 있고 이를 한꺼번에 다룰 수 있 다.
  • 34. 특수 메서드  원래 형태  이런 모양인데 equals가 아니라 == 이었으면 좋겠 다.
  • 35. 특수 메서드  함수를 __eq__ 라고 바꿈
  • 36.  __eq__ == __floordiv__ //  __ne__ != __truediv__ /  __lt__ < __mod__ %  __gt__ > __pow__ **  __le__ <= __str__ str()  __ge__ >= __repr__ repr()  __add__ + __len__ len()  __sub__ -  __mul__ *
  • 37. 문제 풀어보기  https://www.acmicpc.net/problem/1002  고등학교 원과 원이 만나는 개수를 구하는 문제
  • 38. 문제 풀어보기  하노이의 탑  https://www.acmicpc.net/problem/11729
  • 39. 문제 풀어보기 – 하노이 탑  한번에 하나를 이동가능  3개의 위치가 존재  첫번째 위치에 순차적으로 존재하는 탑을 모양 그 대로 세번째 위치로 움직이는 작업