클래스(class), 속성(attribute), 메서드(method)

Gi Woon Lee·2025년 1월 13일
0

TIL

목록 보기
77/78

Python의 Class, Method, Attribute를 한눈에 정리


1. Class (클래스)

  • 정의: 설계도, 틀.
    • 객체를 만들기 위한 청사진으로, 속성(데이터)과 메서드(행동)를 정의함.
  • 예시: 자동차 설계도.
  • 코드:
    class Car:
        def __init__(self, color, model):
            self.color = color
            self.model = model
            
        def drive(self):
            print(f"The {self.color} {self.model} is driving!")

2. Attribute (속성)

  • 정의: 객체가 가지는 데이터(특성, 상태).
    • 클래스 내부에 정의된 변수로, 객체의 고유한 정보를 저장.
  • 예시: 자동차의 색상, 모델명.
  • 코드:
    car1 = Car("red", "sedan")  # 속성: color = "red", model = "sedan"
    print(car1.color)  # red
    print(car1.model)  # sedan

3. Method (메서드)

  • 정의: 클래스 내부에 정의된 함수로, 객체가 수행할 수 있는 행동.
    • self를 통해 객체의 속성을 사용하거나 변경.
  • 예시: 자동차의 달리기, 멈추기.
  • 코드:
    car1.drive()  # The red sedan is driving!

관계 및 예제

class Dog:  # 클래스
    def __init__(self, name, breed):  # 속성 초기화
        self.name = name    # 속성 1: 이름
        self.breed = breed  # 속성 2: 품종

    def bark(self):  # 메서드 1: 짖는 행동
        print(f"{self.name}가 멍멍 짖습니다!")

    def introduce(self):  # 메서드 2: 자기소개
        print(f"저는 {self.breed} 품종의 {self.name}입니다.")

# 객체 생성
dog1 = Dog("바둑이", "진돗개")  # 객체 1
dog2 = Dog("코코", "푸들")     # 객체 2

# 속성 접근
print(dog1.name)  # 바둑이
print(dog2.breed)  # 푸들

# 메서드 호출
dog1.bark()  # 바둑이가 멍멍 짖습니다!
dog2.introduce()  # 저는 푸들 품종의 코코입니다.

예제 코드 2

class Spaceship:
    # class attribute
    tractor_beam = 'off'
    
    # Instance attributes
    def __init__(self, name, kind):
        self.name = name
        self.kind = kind
        self.speed = None
        
    # Instance methods:
    def warp(self, warp):
        self.speed = warp
        print(f'warp {warp}, engage!')
        
    def tractor(self):
        if self.tractor_beam == 'off':
            self.tractor_beam == 'on'
            print('Tractor beam on')
        else:
            self.tractor_beam == 'off'
            print('Tractor beam off')

===============================================

# make an object(`ship`) and then check attributes & methods 
ship = Spaceship('Mockingbird','rescue frigate')

================================================

ship.name
# Mockingbird

ship.kind
# rescue figate 

ship.warp(70)
# warp 70, engage! 

ship.speed
# 70

핵심 비교

항목정의예시
Class설계도, 객체를 만드는 틀class Dog
Attribute객체의 데이터(상태, 특성)name = "바둑이", breed = "진돗개"
Method객체의 행동(기능)bark(), introduce()

비유로 정리

  • 클래스(Class): 로봇 설계도.
  • 객체(Object): 설계도로 만들어진 로봇.
  • 속성(Attribute): 로봇의 이름, 색깔, 크기.
  • 메서드(Method): 로봇이 할 수 있는 행동(걷기, 말하기, 춤추기).

0개의 댓글