OOP란?

Python의 객체 지향 프로그래밍

Alex Yarosh

Content Quality Analyst @ DataCamp

 

절차적 프로그래밍

 

  • 코드를 단계의 순서로 구성
  • 데이터 분석에 적합
Python의 객체 지향 프로그래밍

순서로 사고하기

 

침대-커피-서류가방 아이콘으로 하루 순서 표현

 

여러 활동을 나타내는 다양한 아이콘 모음

Python의 객체 지향 프로그래밍

 

절차적 프로그래밍

 

  • 코드를 단계의 순서로 구성
  • 데이터 분석과 스크립트에 적합

 

객체지향 프로그래밍

 

  • 객체 간 상호작용으로 코드를 구성
  • 프레임워크와 도구 개발에 적합
  • 유지보수와 재사용 용이!
Python의 객체 지향 프로그래밍

데이터 구조로서의 객체

$$\Large{\text{객체 = 상태 + 동작}}$$

노트북을 든 고객 실루엣

 

$$\text{\textbf{캡슐화} - 데이터와 이를 조작하는 코드를 묶음}$$

Python의 객체 지향 프로그래밍

청사진으로서의 클래스

  • 클래스: 객체의 가능한 상태와 동작을 정의한 청사진

고객 클래스

Python의 객체 지향 프로그래밍

청사진으로서의 클래스

  • 클래스: 객체의 가능한 상태와 동작을 정의한 청사진

고객 클래스에서 고객 객체로 분기

Python의 객체 지향 프로그래밍

파이썬의 객체

  • 파이썬의 모든 것은 객체입니다
  • 모든 객체에는 클래스가 있습니다
  • 클래스 확인: type() 사용
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
객체 클래스
5 int
"Hello" str
pd.DataFrame() DataFrame
np.mean function
... ...
Python의 객체 지향 프로그래밍

속성과 메서드

상태 ↔ 속성
import numpy as np
a = np.array([1,2,3,4])

# shape 속성 a.shape
(4,)

 

  • obj.로 속성과 메서드에 접근합니다
동작 ↔ 메서드
import numpy as np
a = np.array([1,2,3,4])

# reshape 메서드 a.reshape(2,2)
array([[1, 2],
       [3, 4]])
Python의 객체 지향 프로그래밍

객체 = 속성 + 메서드

  • 속성 ↔ 변수obj.my_attribute,

  • 메서드 ↔ function()obj.my_method().

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- 모든 속성과 메서드 나열
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

Python의 객체 지향 프로그래밍

복습합시다!

Python의 객체 지향 프로그래밍

Preparing Video For Download...