Python Object Oriented Programming

박정기·2023년 1월 4일
0

네이버 부스트 캠프 사전 2번째 강의

파이썬 객체 지향 프로그래밍 강의 리뷰이다.

강의 링크 바로가기

OOP 개념은 계속 공부해도 어렵고 완벽하게 이해하기 어려운 프로그래밍 패러다임이다. 하지만 이번 강의를 통해서 조금이나마 더 이해할 수 있었고, 파이썬의 모든 라이브러리나 프레임워크가 OOP를 기준으로 작성됐기 때문에 OOP 개념에 대해서 잘 숙지해야겠다고 생각이 들었다.

OOP 개념을 한마디로 압축하면, 결국 실제 세상의 객체를 프로그래밍으로 표현 하는 것이라고 할 수 있고, OOP에서는 상속, 다형성, 가시성 특성을 이해하고 있는게 가장 중요하다.

새로 알게된 내용으로는 Innerfunction 사용법을 알게 됐고, 예전에는 decorator를 그냥 명칭만 알고 넘어갔었는데, closures 함수를 간단하게 표현하게 위해서 decorator가 탄생했다는 것을 설명을 듣고 엄청나게 이해가 잘 됐다. 이것을 통해서 어떤것을 공부할 때 그것이 이해가 잘 가지 않는다면, 그것이 왜 이세상에 생기게 됐는지 본질에 대해서 공부하게 되면 이해가 잘 된다는 것도 알게 된 것 같다.

OOP

파이썬은 객체 지향 프로그래밍 언어이므로 OOP를 맞춰 코딩하는 것이 국룰이다.

OOP는 객체 개념을 프로그램으로 표현한 것이고 변수함수로 표현된다.

OOP는 클래스인스턴스로 나눠진다.

설계도 : 클래스
구현체 : 인스턴스

파이썬 클래스명은 CamelCase로 작성한다.

__init__
은 객체 초기화 예약 함수

상식 : __의 의미: 특수한 예약함수나 변수 그리고 함수명 변경으로 사용한다.

__str__
스트링 함수를 따로 선언하게 되면, Class객체 값이 출력되지 않고, str 함수의 return이 출력된다.

반드시 self를 적어줘야 메소드로 인정이 된다.

여기서 self는 인스턴스 자신을 가르킨다.

객체 지향 언어: 실제 세상을 모델링 하는 것

상속

  • 부모 클래스로 부터 속성과 Method를 물려받은 자식 클래스를 생성
  • super : 자기 자신의 부모를 가리킴

다형성

  • 같은 이름의 메소드의 내부 로직을 다르게 작성
  • 중요한 OOP 개념

가시성

  • 객체의 정보를 볼 수 있는 레벨 조절
  • 누구나 객체 안의 모든 변수를 볼 필요 X
  • __ Private 변수로 선언하여 타객체가 접근 못하게 막음
  • 데코레이터를 활용하여 반환하게 해줄 수 있음

상식: 캡슐화

  • 클래스 설계할 때 클래스 간 간섭/정보공유의 최소화

First-class objects

  • 일등함수 또는 일급 객체
  • 변수나 데이터 구조에 할당이 가능한 객체

Inner function

  • 함수 내에 또 다른 함수가 존재

closures

  • Inner func을 return 값으로 변환

Closures를 왜 쓸까?

  • JS를 사용할 때 많이 씀
  • Inner function을 통해서 목적에 따라 다양하게 변형된 함수를 만들 수 있음

decorator function

  • 복잡한 클로저 함수를 간단하게

데코레이터 예시

0개의 댓글