부스트코스 강의 인공지능(AI) 기초 다지기 중 'Python Object Oriented Programming'을 정리한 내용이다.
Object-Oriented Programming, OOP
객체: 실생활에서 일종의 물건, 속성(Attribute)와 행동(Action)을 가짐
OOP는 이러한 객체 개념을 프로그램으로 표현
파이썬 또한 객체 지향 프로그램 언어
OOP는 설계도에 해당하는 클래스(class)와 실제 구현체인 인스턴스(instance)로 나눈다.
class 선언하기
Attribute 추가하기
객체 초기화 예약 함수인 __init__과 self와 함께
파이썬에서 '__'는 특수한 에약 함수나 변수, 함수명 변경으로 사용 (__main__, __add__ 등)
method 구현하기
objects(instance) 사용하기
self: 생성된 instance를 의미함
객체의 정보를 볼 수 있는 레벨을 조절하는 것
누구나 객체 안에 모든 변수를 볼 필요가 없음
Encapsulation: 캡슐화
변수나 데이터 구조에 할당이 가능한 일급 객체 혹은 일등 함수
parameter로 전달이 가능하거나 리턴 값으로도 객체를 사용함
파이썬의 함수는 일급함수
함수 내에 또 다른 함수가 존재
closures: inner function을 return값으로 반환