축하합니다

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

George Boorman

Curriculum Manager, DataCamp

클래스와 객체

용어 정의
클래스 객체를 만드는 청사진/템플릿
객체 데이터와 _기능_의 조합; 클래스의 인스턴스
Python 객체 지향 프로그래밍 입문

속성과 메서드

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

핵심 개념

캡슐화:

  • 데이터와 메서드 묶기

상속:

  • 기존 코드 기능 확장

다형성:

  • 통합 인터페이스 제공
Python 객체 지향 프로그래밍 입문

비교

연산자 메서드
== __eq__()
!= __ne__()
>= __ge__()
<= __le__()
> __gt__()
< __lt__()
Python 객체 지향 프로그래밍 입문

문자열 표현

__str__()

  • print(obj), str(obj)
print([1,2,3])
[1 2 3]
str([1,2,3])
'[1, 2, 3]' 
  • 비공식, 최종 사용자용
  • 문자열 표현(str)

__repr__()

  • repr(obj), 콘솔 출력
repr([1,2,3])
[1,2,3]
[1,2,3]
[1,2,3]
  • 공식, 개발자용
  • 재현 가능한 표현(repr)
  • print()의 폴백
Python 객체 지향 프로그래밍 입문

에러 처리

class BalanceError(Exception): 
    pass

class Customer: def __init__(self, name, balance): if balance < 0 : raise BalanceError("Balance has to be non-negative!") else: self.name, self.balance = name, balance
# Use try-except to catch errors try: cust = Customer("Larry Torres", -100) except BalanceError: cust = Customer("Larry Torres", 0)
Python 객체 지향 프로그래밍 입문

다음 단계

  • 다중 상속
  • 디스크립터
  • 사용자 정의 속성
  • 사용자 정의 이터레이터
  • 타입 힌트
  • 추상 기본 클래스
Python 객체 지향 프로그래밍 입문

연습해 봅시다!

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

Preparing Video For Download...