본문 바로가기
파이썬/[객체지향 시리즈!]

📌 2. 파이썬 클래스와 객체: 기본 개념과 활용

by 배불뚝 아저씨 2025. 2. 4.
반응형

1. 객체지향 프로그래밍(OOP) 개요 (첫 번째 시리즈 요약)

이전 글에서 객체지향 프로그래밍(OOP)의 핵심 개념을 소개했습니다. 주요 내용은 다음과 같습니다:

  • 객체(Object): 속성과 동작을 가지는 독립적인 개체 (예: 자동차, 학생, 은행 계좌 등)
  • 클래스(Class): 객체를 만들기 위한 설계도
  • OOP의 4대 원칙:
    1. 캡슐화: 데이터를 보호하고 외부 접근을 제한
    2. 상속: 기존 클래스를 확장하여 새로운 클래스를 만듦
    3. 다형성: 동일한 메서드가 클래스에 따라 다르게 동작
    4. 추상화: 불필요한 정보를 숨기고 중요한 부분만 공개

이제, 클래스를 좀 더 깊이 있게 다루며 객체를 어떻게 활용하는지 살펴보겠습니다.


2. 클래스와 객체 만들기 (예제)

🔹 기본 클래스 정의 및 객체 생성

class Car:
    def __init__(self, brand, color):
        self.brand = brand  # 속성(Attribute)
        self.color = color  # 속성(Attribute)

    def drive(self):
        return f'{self.color} {self.brand} 자동차가 달립니다!'

# 객체 생성
car1 = Car("Hyundai", "Red")
car2 = Car("BMW", "Blue")

# 메서드 호출
print(car1.drive())
print(car2.drive())

🖥 실행 결과

Red Hyundai 자동차가 달립니다!
Blue BMW 자동차가 달립니다!

3. 생성자와 소멸자

🔹 __init__: 생성자 (객체가 생성될 때 자동 호출됨)

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print(f"{self.name} 객체가 생성되었습니다!")

person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

🖥 실행 결과

Alice 객체가 생성되었습니다!
Bob 객체가 생성되었습니다!

🔹 __del__: 소멸자 (객체가 삭제될 때 자동 호출됨)

class Test:
    def __init__(self, value):
        self.value = value
        print(f"객체 {self.value} 생성")
    
    def __del__(self):
        print(f"객체 {self.value} 삭제")

obj1 = Test(1)
obj2 = Test(2)
del obj1  # 명시적으로 객체 삭제

🖥 실행 결과

객체 1 생성
객체 2 생성
객체 1 삭제

반응형

4. 인스턴스 변수와 클래스 변수

🔹 인스턴스 변수 (객체마다 다름)

class Student:
    def __init__(self, name, grade):
        self.name = name  # 인스턴스 변수
        self.grade = grade  # 인스턴스 변수

student1 = Student("Alice", "A")
student2 = Student("Bob", "B")

print(student1.name, student1.grade)  # Alice A
print(student2.name, student2.grade)  # Bob B

🔹 클래스 변수 (모든 객체가 공유)

class School:
    school_name = "파이썬 고등학교"  # 클래스 변수
    
    def __init__(self, student_name):
        self.student_name = student_name  # 인스턴스 변수

student1 = School("Alice")
student2 = School("Bob")

print(student1.school_name)  # 파이썬 고등학교
print(student2.school_name)  # 파이썬 고등학교

5. 메서드의 종류 (추가 예제 포함)

🔹 인스턴스 메서드 (객체별 동작)

class Person:
    def __init__(self, name):
        self.name = name
    
    def greet(self):
        return f"안녕하세요, 저는 {self.name}입니다."

person = Person("Alice")
print(person.greet())

🔹 클래스 메서드 (클래스 변수를 조작)

class Car:
    car_count = 0  # 클래스 변수
    
    def __init__(self, brand):
        self.brand = brand
        Car.car_count += 1
    
    @classmethod
    def get_car_count(cls):
        return f"총 자동차 개수: {cls.car_count}"

car1 = Car("Hyundai")
car2 = Car("BMW")
print(Car.get_car_count())

🔹 정적 메서드 (추가 예제: 단순 연산 수행)

class Math:
    @staticmethod
    def multiply(x, y):
        return x * y

print(Math.multiply(3, 5))  # 15

🎯 마무리

이 글에서는 클래스와 객체의 개념, 생성자와 소멸자, 인스턴스 변수와 클래스 변수, 다양한 메서드 종류에 대해 알아보았습니다.

추가된 예제를 활용하여 실습하면서 개념을 확실히 익혀보세요! 다음 글에서는 상속과 다형성을 활용하는 방법을 다뤄보겠습니다! 🚀

 

 

 

 

혼자 공부하는 파이썬:1:1 과외하듯 배우는 프로그래밍 자습서 - 프로그래밍 언어 | 쿠팡

현재 별점 4.8점, 리뷰 198개를 가진 혼자 공부하는 파이썬:1:1 과외하듯 배우는 프로그래밍 자습서! 지금 쿠팡에서 더 저렴하고 다양한 프로그래밍 언어 제품들을 확인해보세요.

www.coupang.com

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

반응형

댓글