코드 여행 일기

파이썬 클래스(class)의 심화 내용과 활용 본문

Python

파이썬 클래스(class)의 심화 내용과 활용

할짝개발자 2024. 1. 17. 17:57
728x90
반응형

 

 

안녕하세요! 이전 포스트에서는 파이썬 클래스의 기본 개념과 예제를 살펴보았습니다.

이번에는 클래스의 심화 내용과 더 다양한 활용법을 알아보겠습니다.

 


 

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

 

클래스 변수는 클래스 전체에서 공유되는 변수이고, 인스턴스 변수는 각 인스턴스마다 독립적으로 사용되는 변수입니다.

 

class Car:
    class_variable = 0

    def __init__(self, model):
        self.model = model
        Car.class_variable += 1

# 클래스 변수 사용
print(Car.class_variable)  # 0

car1 = Car(model="Tesla")
print(car1.model)          # Tesla
print(Car.class_variable)  # 1

car2 = Car(model="BMW")
print(car2.model)          # BMW
print(Car.class_variable)  # 2

 

 

2. 메서드 오버라이딩

상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 메서드 오버라이딩이라고 합니다.

 

class Animal:
    def speak(self):
        print("동물이 소리를 낸다.")

class Dog(Animal):
    def speak(self):
        print("멍멍!")

my_dog = Dog()
my_dog.speak()  # 멍멍!

 

 

3. 클래스 메서드와 정적 메서드

클래스 메서드는 클래스 변수를 다루거나 클래스 전체에 영향을 미치는 메서드이고,

정적 메서드는 클래스나 인스턴스와 무관하게 독립적으로 동작하는 메서드입니다.

 

class Math:
    @classmethod
    def add(cls, x, y):
        print(f"{cls.__name__} 클래스의 덧셈 메서드 호출: {x + y}")

    @staticmethod
    def multiply(x, y):
        print(f"곱셈 메서드 호출: {x * y}")

Math.add(3, 5)          # Math 클래스의 덧셈 메서드 호출: 8
Math.multiply(3, 5)     # 곱셈 메서드 호출: 15

 


 

 

이번 포스트에서는 클래스의 클래스 변수, 인스턴스 변수, 메서드 오버라이딩, 클래스 메서드,

정적 메서드 등과 같은 심화적인 내용을 다뤄보았습니다.

이러한 내용들을 잘 활용하면 보다 강력하고 유연한 클래스를 정의할 수 있습니다.

728x90
반응형