Soft Ware/python

class 의 인스턴스와 클래스 간의 이해(2)

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


class CounterManager:
    insCount = 0;
    def __init__(self):
        CounterManager.insCount += 1;
       
    def printInstaceCount():
        print("Instance Count" , CounterManager.insCount);

a,b,c = CounterManager(),CounterManager(),CounterManager();

CounterManager.printInstaceCount();

출력문:
I
nstance Count 3

위의 소스를 보면 클래스가 자기 자신의 변수에 같을 증가 하는것을 볼수 있다.

자 그럼 다음 소스와 차이점을 느껴보자

class CounterManager:
    insCount = 0;
    def __init__(self):
       self.insCount += 1;
       
    def printInstaceCount(self):
        print("Instance Count" , self.insCount);

a,b,c = CounterManager(),CounterManager(),CounterManager();

a.printInstaceCount();


a.__class__.insCount = 2;

a.printInstaceCount();
b.printInstaceCount();

d = CounterManager();

d.printInstaceCount();

출력문 :
Instance Count 1
Instance Count 1
Instance Count 1
Instance Count 3

2번째는 인스턴스 안의 insCount 를 증가 시킨것입니다 ^^