파이썬 소멸자
소멸자는 Python 객체를 정리해야 할 때 호출됩니다. 기본적으로 생성자와 완전히 반대되는 역할을 하며 생성자가 수행하는 작업을 반대로 하는 데 사용됩니다. 소멸자는 주로 프로그램을 구성하고 코딩 표준을 구현하기 위해 배포됩니다.
이 튜토리얼은 파이썬에서 소멸자의 사용을 보여줍니다.
Python에서 소멸자의 필요성은 Python의 가비지 수집기가 메모리 관리를 자동으로 처리하기 때문에 C++와 같은 다른 프로그래밍 언어만큼 많지 않습니다. 그러나 소멸자는 Python에 존재하며 이 기사에서는 소멸자의 사용법과 기능에 대해 설명합니다.
파이썬에서 소멸자로 __del__()
함수를 사용합니다. 프로그래머가 __del__()
함수를 호출하면 모든 객체 참조가 제거되며, 이를 가비지 수집이라고 합니다.
소멸자의 구문은 다음과 같습니다.
def __del__(self):
# Write destructor body here
Python 프로그램에서 소멸자를 사용하는 이점은 다음과 같습니다.
- 불필요한 공간을 많이 차지하는 개체가 자동으로 삭제되어 메모리 공간이 확보됩니다.
- 자동으로 호출되기 때문에 쉽습니다.
다음 코드는 Python에서 소멸자를 사용합니다.
class Fruits:
# Calling constructor
def __init__(self):
print("Fruits created.")
# Calling destructor
def __del__(self):
print("Destructor called, Fruits deleted.")
obj = Fruits()
del obj
위의 코드는 다음과 같은 출력을 제공합니다.
Fruits created.
Destructor called, Fruits deleted.
위의 코드는 프로그램이 종료된 후 또는 개체에 대한 지정된 모든 참조가 삭제된 후 소멸자가 호출되었음을 보여줍니다. 이것은 주어진 객체에 대한 참조 횟수의 값이 특정 시점 이후에 0이 되고 주어진 객체가 범위를 벗어날 때가 아님을 의미합니다.
소멸자를 더 자세히 설명하는 또 다른 코드가 있습니다.
class Fruits:
def __del__(self):
print("Fruits deleted")
a = Fruits()
del a
a = Fruits()
b = a
del b
del a
위의 코드에서 Fruits
클래스가 정의되고 a
객체는 클래스에 대한 참조이고 b
개체는 해당 참조 a
의 로컬 복사본입니다. b
가 삭제되면 이 함수는 로컬 복사본만 보유하고 다른 것은 보유하지 않기 때문에 호출되지 않습니다.
생성자와 소멸자는 프로그래머가 사용하는 언어에 관계없이 프로그래밍 세계에서 필수적입니다. 소멸자는 가비지 수집에서 중요한 역할을 합니다. 작은 코드 덩어리에서는 큰 변화를 볼 수 없지만 메모리 사용이 큰 우선 순위인 복잡한 프로그램과 프로덕션 수준 코드에서는 소멸자의 중요성이 매우 명확하게 보입니다.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn