2010-06-14 4 views
1

파이썬에서 클래스를 초기화 할 때 값을 지정합니다. 그런 다음 클래스에서 뭔가를하는 메소드를 호출합니다. 여기에 코드 조각입니다 :오브젝트 인스턴스를 파기/정리할 때 값을 반환하는 방법

class TestClass(): 
    def __init__(self): 
     self.counter = 0 

    def doSomething(self): 
     self.counter = self.counter + 1 
     print 'Hiya' 

if __name__ == "__main__": 
    obj = TestClass() 
    obj.doSomething() 
    obj.doSomething() 
    obj.doSomething() 
    print obj.counter 

당신이 볼 수 있듯이, 매번 내가 doSomething 방법, 그것은 텍스트를 인쇄하고 내부 변수 즉 카운터를 증가 호출합니다. 클래스를 시작할 때 카운터 변수를 0으로 설정합니다. 객체를 파기하면 내부 변수 counter을 반환하고 싶습니다. 이것을하는 좋은 방법은 무엇입니까? 나는 다음과 같이 다른 방법이 있는지 알고 싶었습니다.

  • 변수를 직접 액세스하고 싶습니다. obj.counter처럼.
  • getCounter과 같은 방법을 만듭니다.

감사합니다.

+1

누구에게 반환 하시겠습니까? –

답변

2

개체 파괴시 행동을하는 것은 일반적으로 눈살을 찌푸리게됩니다. 파이썬은 __del__ 함수를 제공하지만 특정 인스턴스에서는 호출되지 않을 수 있습니다.

카운터 변수를 사용하여 작업하려면 무엇을해야합니까? 데이터는 어디로 갈까요?

+0

당신 말이 맞아요. 나는 약간의 독서를했다. 나쁜 습관입니다. –

관련 문제