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

+ Recent posts