더북(TheBook)

객체가 멤버와 메서드를 가질 수 있는 것처럼 클래스도 멤버와 메서드를 가질 수 있습니다. 클래스가 가지는 멤버를 클래스 멤버(class member)라고 하고, 메서드를 클래스 메서드(class method)라고 합니다. 예제 코드를 보죠.

코드 6-14 oop1/oop1_2/cls_mem_met.py ①

class A:
    c_mem = 10           #1

    @classmethod
    def cls_f(cls):      #2
        print(cls.c_mem)

    def __init__(self, num):
        self.i_mem = num #3

    def ins_f(self):
        print(self.i_mem)


클래스 선언 바로 아래에서 멤버를 선언했습니다. 인스턴스 멤버 선언(#3)과 비교해 보면 차이를 알 수 있습니다. c_mem과 같은 멤버를 클래스 멤버라고 합니다(#1). 클래스 멤버는 클래스가 가지는 멤버입니다. cls_f() 메서드 위에 데코레이터 @classmethod가 있습니다(#2). 이를 통해 이 메서드는 클래스 메서드가 됩니다. 클래스 메서드는 클래스가 가진 메서드입니다. 클래스 멤버와 메서드가 가지는 특징을 알아보겠습니다.


TIP 데코레이터에 관해서는 파이썬 문법 책을 참고하세요.


코드 6-15 oop1/oop1_2/cls_mem_met.py ②

if __name__ = = "__main__":
    print(A.c_mem)               #4
    A.cls_f()                    #5
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.