데이터 분석가:Applied Data Analytics/파이썬

클래스(Class)와 객체(Object)

데이터분석 2025. 1. 31. 12:42

클래스는 객체(Object) 를 정의하고 만들기 위한 변수와 메서드의 집합.

설계도를 이용해서 다양한 색깔, 사이즈, 디자인의 신발을 만들 수 있다면, 여기서 중요한 것은 하나의 설계도로 여러 제품을 만들 수 있다. 여기서 설계도가 클래스이고 만든 제품이 객체 입니다.

 

붕어빵을 만드는 틀이 있다면, 클래스는 붕어빵을 만드는 틀이며, 객체는 실제로 만들어진 붕어빵이 됩니다.

 

클래스의 이름은 대문자로 시작(캐멀 케이스)

객체 = 글래스이름() 으로 한후 글래스 사용가능

 

용어 및 설명

클래스(Class) 제품의 설계도
객체(Object) 설계도로 만든 제품
속성(Attribute) 클래스 안의 변수
메서드(Method) 클래스 안의 함수
생성자(Constructor) 객체를 만들 때 실행되는 함수
인스턴스(Instance) 메모리에 살아있는 객체

인스턴스 : dog1 = Dog()  # Dog 클래스의 인스턴스 (dog1)

 

 

강아지 클래스 만들기

class Dog:
    def __init__(self, input_name, input_age, input_color):
        self.dog_name = input_name  # 강아지 이름
        self.dog_age = input_age    # 강아지 나이
        self.dog_color = input_color  # 강아지 색깔

    def bark(self):
        print(f"{self.dog_name}가 멍멍 짖어요!")  
   
    def white(self):
        print(f"{self.dog_color}이 색상이 빛나요!")

# 강아지 객체 만들기
dog1 = Dog("초코", 3, "갈색")  
dog2 = Dog("하양이", 2, "하얀색")  
dog3 = Dog("포실이", 5, "검은색")

print(dog1.dog_name, dog1.dog_age, dog1.dog_color)  # 초코 3 갈색
print(dog2.dog_name, dog2.dog_age, dog2.dog_color)  # 하양이 2 하얀색
print(dog3.dog_name, dog3.dog_age, dog3.dog_color) # 포실이 5 검은색
dog1.bark()    # 하양이가 멍멍 짖어요!
dog2.bark()
dog3.bark()
dog3.white()  # 포실이가 색상이 빛나요!
__init__의 매개변수(input_name, input_age, input_color)
 
 
결과 :
초코 3 갈색
하양이 2 하얀색
초코가 멍멍 짖어요! 
하양이가 멍멍 짖어요! 
포실이가 멍멍 짖어요!
검은색이 색상이 빛나요!
 
__init__(이니셜라이저)?

__init__는 클래스가 처음 만들어질 때(객체 생성) 자동으로 실행되는 특별한 함수
쉽게 말하면, 객체를 만들자마자 필요한 정보를 자동으로 설정하는 역할.

 

__init__은 객체가 만들어질 때 자동 실행되는 함수.
 self를 사용해서 각 객체마다 속성(이름, 나이 등)을 저장할 수 있다.
객체를 만들자마자 필요한 정보를 넣을 수 있다.

  1. 클래스 = "설계도" (강아지를 만들 수 있는 틀)
  2. 객체 = "실제 물건" (초코, 하양이 같은 강아지)
  3. 속성 (변수) = 강아지의 이름, 나이, 색깔
  4. 동작 (함수) = 강아지가 짖는 행동

클래스를 만들면 비슷한 것들을 쉽게 여러 개 만들 수 있다.

 

 

※ 생성자(Constructor)는 클래스에서 객체를 만들 때 자동으로 실행되는 함수 (__init__)
    제너레이터(Generator)는 데이터를 필요할 때 하나씩 생성하는 함수 (yield 사용)