파이썬 클래스 이야기
정보통신공학과 박동규
절차 지향 프로그래밍과 객체 지향 프로그래밍
객체 지향 프로그래밍
! 프로그램을 실제 세상에 가깝게 모델링
! 컴퓨터가 수행하는 작업을 객체들간의 상호 작용으로 표현
! 클래스 혹은 객체들의 집합으로 프로그램 작성
커피 자판기
객체지향적 프로그래밍의 객체들의 상호 관련성
2
오브젝트란
3
클래스와 객체와의 관계
4
붕어빵 틀은 클래스이며, 이 틀의 형태로 구워진 붕어빵은 바로 객 체입니다. 붕어빵은 틀의 모양대로 만들어지지만 서로 조금씩 다
릅니다.
치즈붕어빵, 크림붕어빵, 앙코붕어빵 등이 있습니다. 그래도 이들 은 모두 붕어빵입니다.
클래스와 객체-사례1
5
클래스와 객체
클래스
! 객체의 속성과 행위 선언
! 객체의 설계도 혹은 틀
객체
! 클래스의 틀로 찍어낸 실체
■ 메모리 공간을 갖는 구체적인 실체
■ 클래스를 구체화한 객체를 인스턴스(instance)라고 부름
■ 객체와 인스턴스는 같은 뜻으로 사용
사례
! 클래스: 소나타자동차, 객체: 출고된 실제 소나타 100대
! 클래스: 벽시계, 객체: 우리집 벽에 걸린 벽시계들
! 클래스: 책상, 객체: 우리가 사용중인 실제 책상들
6
클래스 구조
7
▪ 클래스를 내부적으로 살펴보면, 두 개의 구성 요소를 가짐 : 속성(자료구조)+메소드(함수)
▪ 클래스 구조의 예
원
속성(자료 구조)
중심 반지름
메소드(함수)
그리기 지우기 확대하기 축소하기
삼각형
속성(자료 구조)
좌표 변
메소드(함수)
그리기 지우기 확대하기 축소하기
12.1. 객체와 클래스
클래스 만들기
공(Ball) 클래스
크기(size)
방향(direction) 색상(color)
bounce() 라는 행동이 가능
클래스의 속성
클래스의 함수(메소드)
클래스 작성하기
속성과 행동을 가지는 클래스를 만들자 class 라는 예약어를 이용하자
Ball 은 정의할 클래스의 이름이다
Ball 이라는 클래스는 여러가지의 속성(attribute)과 행동(action)을 가진다
( )
Let’s code
객체의 초기화
• 객체가 처음 만들어질때 타고난 속성값
• 붉은색의 크기가 ‘small’인 공을 만들고자 함
• 이를 위해서는 객체의 초기화 메소드가 필요하다
( )
클래스
myBall, yourBall 은 Ball 객체이다 - 클래스에서 정의한 일을 할 수 있다
여러 종류의 일을 할 수 있다
- 클래스에서 그 행동(method)를 정의한다
파이썬은 객체지향 언어
• 파이썬에는 엄청나게 많은 클래스들이 미리 정의되어 있다
• 개발자들은 이 클래스들을 이용하여 필요한 객체를 생성하고 이를 조작하여 자기가 원하는 목표를 달성한다
• 이런 방식의 프로그래밍 기법을 객체지향 언어라고 한다
Python Standard Library
모듈과 패키지
• 모듈은 import 문을 통해서 코드내부로 삽입 될 수 있는 단일 파일 이나 여러 파일들을 말한다
• 패키지는 패키지 계층구조상의 디렉토리 아래에 있는 모듈들의 모 임이다
모듈
모듈과 패키지
파일파일
모듈 모듈
패키지