본문으로 건너뛰기

클래스 자체 메소드 활용하기

클래스 자체 메소드 활용하기

클래스 메소드(Class Method)는 클래스 자체에 속한 메소드로, 클래스 자체를 메소드의 첫 번째 인자로 받습니다.

클래스 메소드는 @classmethod 데코레이터(다른 함수를 감싸는 함수로, 감싸진 함수의 기능 확장)로 정의합니다.


클래스 메소드 사용 예시

클래스 메소드 사용 예시
class Employee:
raise_amount = 1.04

def __init__(self, name, salary):
self.name = name
self.salary = salary

@classmethod # 클래스 메소드 데코레이터
def set_raise_amt(cls, amount): # cls는 클래스 자체를 의미
cls.raise_amount = amount # 클래스 변수 수정

# 클래스 메소드 사용 예시
Employee.set_raise_amt(1.05)

emp1 = Employee("홍길동", 50000)

emp2 = Employee("박철수", 60000)

print(Employee.raise_amount) # 1.05

print(emp1.raise_amount) # 1.05

print(emp2.raise_amount) # 1.05

이 예제에서 set_raise_amt는 클래스 메소드입니다.

이 메소드는 클래스 변수 raise_amount를 수정하고, 변경된 값은 모든 인스턴스에 반영됩니다.


클래스 메소드의 특징

  • 클래스 변수 접근: 클래스 메소드는 클래스 변수에 접근하고 수정할 수 있습니다.

  • 인스턴스 생성 없이 호출: 클래스 메소드는 객체 인스턴스를 생성하지 않고도 호출할 수 있습니다.

  • 클래스 전체에 영향: 클래스 메소드는 클래스 전체에 영향을 미치는 작업에 적합합니다.