오늘의 TIL (Today I Learned)

1. 클래스와 인스턴스

  • 클래스를 만든다는 것은 "하나의 데이터 타입을 새로 정의하는 것"과 같다.
  • __init__() 메서드는 인스턴스를 생성할 때 초기화 작업을 수행한다.
    • self는 인스턴스 자체를 의미하며, 이를 통해 인스턴스 변수를 초기화한다.
    • 예:
      class Person:
          def __init__(self, name):
              self.name = name
      
  • 클래스에서 메서드를 정의하면, 그 클래스의 모든 인스턴스가 이를 사용할 수 있다.
    • 예:
      def greeting(self):
          print('안녕하세요')
      
  • 인스턴스를 생성하고 메서드를 호출:
  • 지은 = Person('아이유') 지은.greeting() # 출력: '안녕하세요'

2. __eq__ 메서드로 비교 기준 설정

  • __eq__() 메서드는 객체 간 비교 시 기준을 정의하는 역할을 한다.
    • 기본적으로 객체를 비교할 때는 동일성이 아닌 동등성 기준을 설정할 수 있다.
    • 예:
      def __eq__(self, other):
          return self.age == other.age
      
  • 기준이 없으면 두 객체를 비교할 때 False를 반환:
  • m1 = Person('아이유', 30) m2 = Person('지민', 25) print(m1 == m2) # False

3. 파이썬에서 ==와 is의 차이

  • ==는 **동등성(equal)**을 비교: 두 객체의 값이 같은지 확인.
  • is는 **동일성(identity)**을 비교: 두 객체가 메모리상에서 같은 객체인지 확인.
  • 예:
  • list_01 = [1, 2, 3] list_02 = [1, 2, 3] print(list_01 == list_02) # True (내부 값 비교) print(list_01 is list_02) # False (다른 객체) list_01 = [1, 2, 3] list_02 = list_01 print(list_01 is list_02) # True (같은 객체)

4. 주요 학습 포인트

  • 클래스는 데이터와 동작을 함께 묶어 객체 지향적으로 코드를 작성할 수 있게 해준다.
  • 초기화 메서드(__init__)와 특수 메서드(__eq__)를 활용하면, 객체의 동작을 유연하게 정의할 수 있다.
  • 파이썬에서 객체 비교 시 값 비교객체 비교의 차이를 이해하는 것이 중요하다.

느낀 점:

  • 객체 지향 프로그래밍(OOP)의 기본 개념인 클래스와 인스턴스의 관계를 조금 더 명확히 이해할 수 있었다.
  • ==와 is의 차이를 명확히 알게 되어 객체 비교 시 헷갈리지 않을 것 같다.
  • 클래스의 유연함과 강력함을 느끼며, 앞으로의 실습에 더 흥미가 생긴다.

'내일배움캠프 TIL' 카테고리의 다른 글

2024.12.31 TIL - 빅데이터/인공지능 기초 개념 정리  (1) 2024.12.31
2024.12.30TIL  (1) 2024.12.30
2024.12.26TIL  (2) 2024.12.26
2024.12.24 TIL  (1) 2024.12.24
2024.12.23TIL  (0) 2024.12.23

+ Recent posts