본문 바로가기
Programming/Python

[Python] 생성자(__init__)와 소멸자(__del__)

by dev_ss 2022. 10. 21.

Definition : 생성자, 소멸자는 객체의 처음과 끝을 장식하는 호출 함수

 

1. 생성자(Constructor)

파이썬은 클래스(Class)를 만들고 인스턴스(Instance)가 생성이 될 때 자동으로 생성자(__init__)가 같이 생성된다.


Default :

class New :
	def __init__(self):
		pass

클래스 내부적으로 항상 존재하나 별도의 기능이 있는 것이 아니기에 필요에 따라 개발자가 기능을 부여할 수 있다.


Example :

class Example :
	def __init__ (self, test1, test2):
		print(f"{test1} is printed")
		print(f"{test2} is printed")

# Create new instance
instance = Example("apple","banana")

Result :

apple is printed
banana is printed

Example :

class Example:
    def __init__(self,food,drink):
        self.food = food
        self.drink = drink

ex = Example("pasta","coke")
print(ex.food)
print(ex.drink)

Result :

pasta
coke

2. 소멸자(Destructor)

인스턴스가 생성이 될 때 생성자(__init__)가 자동으로 생성되는 것과 같이 클래스가 소멸할 때 자동으로 소멸자(__del__)를 호출한다.


Default :

class New :
	def __del__(self):
		pass

클래스 소멸 시 자동으로 호출이 되며 별도의 기능을 가지고 있지 않으나 개발자의 임의로 기능을 부여할 수 있다.


Example :

class Example:
    def __init__(self):
        print("__init__")
        
    def __del__(self):
        print("__del__")

# init
ex = Example()

print("------------")

# del
del ex

Result :

__init__
------------
__del__

 

반응형

'Programming > Python' 카테고리의 다른 글

[Python] "_" in Python (Underbar)  (0) 2022.10.30
[Python] GIL(Global Interpreter Lock)  (3) 2022.10.15
[Python] 파이썬이란  (0) 2022.10.13