본문 바로가기

컴퓨터/Python

생성자, 소멸자 메서드

생성자 메서드 __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이 아니면 소멸자 호출을 안 함