OOP란?

Python 객체 지향 프로그래밍 입문

George Boorman

Curriculum Manager, DataCamp

절차적 프로그래밍

 

  • 코드를 단계의 나열로 작성
  • 데이터 분석에 적합

계단

1 이미지 출처: https://unsplash.com/@tateisimikito
Python 객체 지향 프로그래밍 입문

순서로 생각하기

 

침대, 커피, 서류가방 아이콘의 연속

 

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

Python 객체 지향 프로그래밍 입문

절차적 프로그래밍

 

  • 코드를 단계의 나열로 작성
  • 데이터 분석에 적합

객체지향 프로그래밍

 

  • 코드는 객체 간 상호작용
  • 소프트웨어 개발에 적합
  • 유지보수 쉽고 재사용 가능!
Python 객체 지향 프로그래밍 입문

객체

$$\Large{\text{객체 = 데이터 + 기능}}$$

노트북을 든 고객을 나타내는 사람 실루엣

                                                  상태 - 객체의 데이터

                                                  동작 - 객체의 _기능_

Python 객체 지향 프로그래밍 입문

파이썬의 객체

  • 파이썬에서 모든 것은 객체다
객체 타입
5 int
"Hello" str
pd.DataFrame() DataFrame
sum() function
... ...
Python 객체 지향 프로그래밍 입문

청사진으로서의 클래스

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

고객 클래스

Python 객체 지향 프로그래밍 입문

청사진으로서의 클래스

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

고객 클래스로부터 분기되는 고객 객체들

Python 객체 지향 프로그래밍 입문

파이썬의 클래스

  • 같은 타입의 파이썬 객체는 동일하게 동작함
  • lists는 하나의 클래스
    • 쉼표로 값 나열하여 생성 [1, 2, 3, 4, 5]
    • 동일한 메서드 공유, 예: .append()
  • 클래스 확인에는 type() 사용
type([1, 2, 3, 4, 5])
<class 'list'>
Python 객체 지향 프로그래밍 입문

속성과 메서드

상태 ↔ 속성
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# shape 속성 df.shape
(3, 2)
  • obj.로 속성과 메서드에 접근
동작 ↔ 메서드
import pandas as pd
df = pd.DataFrame({"a": [1,2,3], 
                   "b": [4,5,6]})

# head 메서드 df.head()
   a  b
0  1  4
1  2  5
2  3  6
Python 객체 지향 프로그래밍 입문

속성과 메서드 표시하기

# 속성과 메서드 표시
dir([1, 2, 3, 4])
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
# 속성과 메서드 표시
dir(list)
['__add__',
 '__class__',
 '__contains__',
 '__delattr__', 
 ...
 'pop',
 'remove',
 'reverse',
 'sort']
Python 객체 지향 프로그래밍 입문

요약표

용어 정의
클래스 객체를 만드는 청사진/템플릿
객체 데이터와 _기능_의 결합; 클래스의 인스턴스
상태 객체에 연결된 데이터, 속성으로 지정됨
동작 객체의 _기능_, 메서드로 정의됨
Python 객체 지향 프로그래밍 입문

복습해 봅시다!

Python 객체 지향 프로그래밍 입문

Preparing Video For Download...