TIL(24.11.25)

채채·2024년 11월 25일

Today I Learned

목록 보기
15/75

본 캠프 시작!

기본개념 복습

Class와 객체의 개념

객체지향이란?

절차지향프로그래밍 시대에서 큰 프로그램을 잘 관리하기 위하여 객페지향으로 진화!
객체지향은 작은단위로 나누어 각각을 독립적으로 관리하기 때문에 유지보수가 편하고, 사람이 이해하기 쉬움.

  • 클래스 : 설계도
  • 객체 : 설계도로 만든 제품

예를 들어,
가방을 만들어내는 설계도(클래스)가 하나 있으면 여러개의 가방(객체)을 대량 생산할 수 있다. 또한 만들어진 가방A에 빨간색을 칠해도 가방B에는 아무 영향이 없다. (각 객체는 독립적임)

클래스를 만드는 이유!

https://youtu.be/uIcK7-YU8uA?si=mP-7ItDfBJdBkEZ8
이 영상에서 쉽게 배울 수 있었다.
사진처럼 각각의 변수를 한 덩어리에 묶어 놓을 수 있음!

기본구조

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

    def bark(self):
        return f"{self.name}가 짖습니다."

    def introduce(self):
        return f"이름: {self.name}, 품종: {self.breed}"

class의 신기한 메서드

1. 매직메서드

대표적인 매직 메서드

  • __init__
    객체가 생성될 때 호출되는 생성자 메서드로, 객체의 초기화를 담당
  • __repr__
    객체의 "공식적인" 문자열 표현을 반환하는 메서드로, 주로 디버깅을 위해 사용
  • __add__
    객체 간의 덧셈 연산을 정의하는 메서드로, + 연산자를 재정의할 수 있음.
  • __eq__
    두 객체가 같은지 비교하는 메서드로, == 연산자를 재정의함
  • __str__
    객체의 "공식적인" 문자열 표현을 반환하는 메서드로, 주로 디버깅을 위해 사용

2. 클래스 메서드와 정적 메서드

클래스 메서드(Class Method)
클래스 메서드는 클래스 자체를 인수로 받는 메서드로, 클래스 변수를 다루거나, 클래스 자체에 대한 작업을 수행할 때 사용. 클래스 메서드는 @classmethod 데코레이터를 사용해 정의하며, 첫 번째 매개변수로 cls를 받습니다. cls는 클래스 자신을 참조.

정적 메서드(Static Method)
정적 메서드는 클래스나 객체와는 관련이 없지만, 클래스의 맥락에서 의미가 있는 메서드. 정적 메서드는 @staticmethod 데코레이터를 사용해 정의하며, 첫 번째 매개변수로 self나 cls를 받지 않음.

3. 상속(Inheritance)

상속(Inheritance)기존 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스)가 물려받아 사용하는 개념. 상속을 통해 코드의 재사용성을 높이고, 기존 기능을 확장하거나 수정할 수 있음.

상속의 장점

  • 코드 재사용
  • 유지보수성
  • 확장성
profile
화이팅

0개의 댓글