[인공지능(AI) 기초 다지기] - Python Object Oriented Programming

Jeonghwan Kim·2022년 12월 10일
0

부스트코스 강의 인공지능(AI) 기초 다지기 중 'Python Object Oriented Programming'을 정리한 내용이다.

객체지향 프로그래밍 개요

  • Object-Oriented Programming, OOP

  • 객체: 실생활에서 일종의 물건, 속성(Attribute)와 행동(Action)을 가짐

  • OOP는 이러한 객체 개념을 프로그램으로 표현

    • 속성은 변수(variable), 행동은 함수(method)로 표현됨
  • 파이썬 또한 객체 지향 프로그램 언어

  • OOP는 설계도에 해당하는 클래스(class)와 실제 구현체인 인스턴스(instance)로 나눈다.

Objects in Python

  • class 선언하기

    • class명은 대문자로 띄어쓰기 표현 (ex. CamelCase)
    • 함수, 변수명은 _로 띄어쓰기 표현 (ex. snake_case)
  • Attribute 추가하기

    • 객체 초기화 예약 함수인 __init__과 self와 함께

    • 파이썬에서 '__'는 특수한 에약 함수나 변수, 함수명 변경으로 사용 (__main__, __add__ 등)

  • method 구현하기

    • method(Action)추가는 기존 함수와 같으나 반드시 self를 추가해줘야 class 함수로 인정
  • objects(instance) 사용하기

    • Object 이름 선언과 함께 초기값 입력 하기
  • self: 생성된 instance를 의미함

OOP의 특성

상속 (Inheritance)

  • 부모 클래스로부터 속성과 Method를 물려받은 자식 클래스를 생성하는 것

다형성 (Polymorphism)

  • 같은 이름 메소드의 내부 로직을 다르게 작성

가시성 (Visibility)

  • 객체의 정보를 볼 수 있는 레벨을 조절하는 것

  • 누구나 객체 안에 모든 변수를 볼 필요가 없음

  • Encapsulation: 캡슐화

    • Class를 설계할 때 Class 간 간섭/정보공유를 최소화함

First-class objects

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

  • parameter로 전달이 가능하거나 리턴 값으로도 객체를 사용함

  • 파이썬의 함수는 일급함수

Inner function

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

  • closures: inner function을 return값으로 반환

Decorator function

  • 복잡한 closure 함수를 간단하게 해줌

0개의 댓글