생성자 메서드 __init__()
소멸자 메서드 __del__()
>>> class MyClass:
def __init__(self, value):
self.Value = value
print("Class is created! Value = ", value)
def __del__(self):
print("Class is deleted!")
>>> def foo():
d = MyClass(10)
>>> foo()
Class is created! Value = 10
Class is deleted!
>>> class MyClass:
def __init__(self, value):
self.Value = value
print("Class is created! Value = ", value)
def __del__(self):
print("Class is deleted!")
>>> c = MyClass(10) <<< 인스턴스 객체 생성 - 생성자 호출(레퍼런스 카운터: 1)
Class is created! Value = 10
>>> c_copy = c <<< 레퍼런스 카운터 증가: 2
>>> del c <<< 레퍼런스 카운터 감소: 1
>>> del c_copy <<< 레퍼런스 카운터 감소: 0 - 소멸자 호출
Class is deleted!
c_copy라는 이름으로 접근할 수 있게 할당하면 내부적으로 인스턴스 객체의 레퍼런스 카운터는 하나 증가
레퍼런스 카운터가 0이 아니면 소멸자 호출을 안 함
'컴퓨터 > Python' 카테고리의 다른 글
연산자 중복 정의 (0) | 2013.07.17 |
---|---|
정적메서드, 클래스메서드 (0) | 2013.07.17 |
클래스 객체와 인스턴스 객체의 관계 (0) | 2013.07.15 |
클래스 객체 와 인스턴스 객체의 이름공간 (0) | 2013.07.15 |
클래스 선언 (0) | 2013.07.15 |