오늘의 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 |