Python/클래스
Python 생성자, 소멸자, self
Yonggyu
2023. 9. 21. 15:42
반응형
self
파이썬은 생성자와 모든 메소드에 반드시 첫 번쨰로 적는 self가 있다. 메소드를 호출할 때는 반드시 객체변수를 인수로 self 매개변수에 전달해야 한다. 그래야 해당 메소드가 클래스 타입의 객체변 고유 메소드로 인식되기 때문이다.
생성자 : __init__(self)
- 생성자는 클래스의 맴버변수들을 초기화한다.
- 객체를 생성할 때 자동으로 호출되는 함수
class Person:
def __init__(self,name,age,addr): # 생성자
self.name = name
self.age = age
self.addr = addr
person = Person('홍길동',21,'서울') # 객체를 생성하면서 생성자를 호출하고, 데이터를 전달한다.
print(person.name)
print(person.age)
print(person.addr)
"""결과값
홍길동
21
서울
"""
위의 코드를보면 person = Person('홍길동',21,'서울') 로 객체를생성하면 생성자를 호출한다.
생성자를 보면 parameter가 self를 제외한 3개이니 객체를 생성할때도 3개의 argument를 전달해야한다.
생성자가 호출되면 각각의 변수에 데이터가 전달된다.
소멸자 : __del__(self)
소멸자는 클래스 객체의 수행이 완료되면 자동으로 수행된다.
소멸자를 이용해 메모리에 저장된 자원 해제 등의 마무리 작업을 할 수 있으나, 가비지컬렉터(GC)가 메모리 관리를 자동으로 해주므로 반드시 적어야 할 코드는 아니다.
프로그램이 종료될 때 마무리 작업이 존재하면 소멸자의 수행문을 적어주면 된다.
728x90
반응형