Soft Ware/python

class 중 정적메소드로 등록 및 클래스메소드로 등록 하는방법

달려가보자 2012. 3. 12. 20:44


class CounterManager:
    insCount = 0;
   
    def __init__(self):
        CounterManager.insCount += 1;
       
    def staticPrintCount(): # 정적 메서드로 등록 하는 부분
        print("Instance Count :", CounterManager.insCount);
   
    SPrintCount = staticmethod(staticPrintCount) # 호출할 메서드 이름 = staticmethod(클새스내 정의한 메서드 이름)
   
    def classPrintCount(cls): # 클래스 메소드로 등록 하는부분
        print("Instance Count: ", cls.insCount)
   
    CPrintCount = classmethod(classPrintCount); # 호출할 메서드 이름 = classmethod(클래스내 정의한 메서드 이름)
   
a,b,c = CounterManager(),CounterManager(),CounterManager();

CounterManager.SPrintCount();
CounterManager.CPrintCount();

음 전 이걸 보고 self를 선언한것 빼고는 똑같은거 같습니다 다만 어떤 메소드로 등록하는냐에 따라

차이 정도 라고 생각이 드네요 ^^