9. (Python) 객체 지향 프로그래밍

2023. 11. 8. 13:43NAVER AI Tech/Python & AI math

OOP(Object-Oriented Programming) : 기능 별로 모듈화 시켜서 코드를 재사용, 혹은 짜잡기가 가능하도록 프로그래밍 하는 것.

- class, object가 나온다.

- class는 이데아, object(=instance)는 class가 현실화로 구체화된 것.

 

CamelCase : 띄어쓰기 부분에 '대문자'를 다는 방식 Class명에 사용.

snake_case : 띄어쓰기 부분에 '_'를 다는 방식으로 변수명,함수명을 선언

 

__init__(self, *args)

- 객체를 초기화 하는 예약 함수.

- self란? 생성된 instance 자기 자신.

즉 객체를 선언해야하는데 이때 객체를 담을 변수를 선언한다. self란 class내에서 객체를 담을 변수를 의미하게 되는 것이다.

 

** 이때 알아두면 좋은 파이썬에서 '__' 의미

- magic method라고 예약 함수같은거다.

- __init__()이라는게 존재하는 것 처럼 __str__(self) , __add__(self) 이런 여러가지 함수들이 있다. 

 

다른 클래스를 그대로 사용할 수도 있지만 custom 하고싶다? -> 상속을 사용한다.

class ChildClass(Parent): # 이렇게 선언. 

    def __init__(self, name, age, gender, salary, hire_date):

        super().__init__(name, age, gender) # 부모객체와 같은 정의를 사용

        self.salary = salary

        self.hire_date = hire_date

 

Visibility, Encapsulation : 가시화, 캡슐화

- 생성한 객체의 정보를 임의의 다른 사용자가 변경하지 못하도록 보호하는 것.

- self.__items = [] #이렇게 '__' 언더바 두개를 통해서 private 변수를 생성한다.

- @property를 통해서 값을 반환받게는 해줄 수도 있다.

 

@property

def items(self):

    return self.__items