오늘의 TIL (Today I Learned)
🏷️ 클래스와 객체 정리
오늘은 클래스(Class), 인스턴스(Instance), 그리고 객체(Object) 에 대해 헷갈린 부분을 학습했습니다.
🔹 클래스 변수 vs 인스턴스 변수
클래스와 객체를 다룰 때 변수의 종류를 정확히 이해하는 것이 중요합니다.
변수 종류 정의 특징
| 클래스 변수 | 클래스 내부에서 선언된 변수 | 모든 인스턴스가 공유 |
| 인스턴스 변수 | self 키워드를 사용하여 정의한 변수 | 객체(인스턴스)마다 독립적으로 존재 |
✔ 클래스 변수는 모든 객체가 공유하고, 인스턴스 변수는 객체마다 다르게 유지된다는 점이 핵심!
🔹 객체 생성과 활용
클래스를 정의한 후 객체를 생성하면, 클래스의 설계도대로 독립적인 인스턴스가 만들어집니다.
✨ 예제 코드
class CoffeeShop:
shop_name = "StarBrew" # 클래스 변수
def __init__(self, coffee_type, price):
self.coffee_type = coffee_type # 인스턴스 변수
self.price = price # 인스턴스 변수
# 객체 생성
coffee1 = CoffeeShop("Americano", 4000)
coffee2 = CoffeeShop("Latte", 5000)
# 출력 확인
print(coffee1.shop_name, coffee1.coffee_type, coffee1.price) # StarBrew Americano 4000
print(coffee2.shop_name, coffee2.coffee_type, coffee2.price) # StarBrew Latte 5000
💡 코드 분석
- shop_name은 클래스 변수로 모든 객체가 공유.
- coffee_type, price는 인스턴스 변수로 각 객체마다 개별적으로 존재.
🔹 오늘 배운 점 정리
1️⃣ 클래스 변수는 모든 인스턴스가 공유하는 값이다.
2️⃣ 인스턴스 변수는 각 객체마다 독립적으로 존재한다.
3️⃣ 객체를 생성하면 __init__ 메서드가 실행되며, 인스턴스 변수가 초기화된다.
4️⃣ 클래스 변수는 클래스명.변수명으로 접근하고, 인스턴스 변수는 self.변수명으로 접근한다.
💡 오늘의 깨달음:
클래스와 객체의 개념을 확실히 이해하면 코드 재사용성을 높이고, 더 체계적인 구조를 만들 수 있다! 🚀
'내일배움캠프 TIL' 카테고리의 다른 글
| 2025.02.04 TIL : Django - Serializer (0) | 2025.02.04 |
|---|---|
| 2025.02.03 TIL Django : DetailView (0) | 2025.02.03 |
| 2025.01.27 TIL Django : URL (0) | 2025.01.27 |
| 2025.01.24TIL: LLM 기초 개념 정리 (0) | 2025.01.24 |
| 2025.01.23TIL Django: DRF (1) | 2025.01.23 |