11. Python - 생성자, 소멸자
2021. 2. 23. 17:32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | class Book: # 생성자 # def __init__(self): # 객체가 메모리상에서 만들어질 때 # 클래스 안에서 overloading이 안되니 -> 생성자는 하나만 가능 def __init__(self, t, p): print("오버로딩 된 생성자") self.title = t # 보통 생성자에서 멤버변수를 만들어 넣으면서 결정 self.price = p def printInfo(self): print(self.price, self.title) # 소멸자(destructor) # 객체가 메모리상에서 사라질 때 def __del__(self): print("책 삭제") # Garbage Collection # 그 객체를 가르키는 변수가 없으면 자동 정리 # stack 영역 : 프로그램 종료시 정리 class Human: def __init__(self, name, age): self.name = name self.age = age def showInfo(self): print(self.name, self.age) def __del__(self): print("bye") # main # # b = Book("자바", 10000) # b.printInfo() h1 = Human("홍길동", 30) h1.showInfo() h2 = Human("홍길동", 30) h2.showInfo() h3 = h1 h3.showInfo() h1 = None # h1의 stack 영역 삭제 아직 h3로 h1에서 만든 heap영역의 사람 객체는 불러올 수 있음 h3 = None # h3의 stack 영역이 삭제 되면서 h1에서 만든 사람 객체를 가리키는 변수가 사라지면서 정리됨 | cs |
'Python' 카테고리의 다른 글
13. Python - import2, if __name__ == "__main__": (0) | 2021.02.23 |
---|---|
12. Python - import_1 (0) | 2021.02.23 |
10. Python - OOP (객체지향) (0) | 2021.02.23 |
9. Python - 가위바위보 게임 (0) | 2021.02.23 |
8. Python - if문, for문, while문 (0) | 2021.02.23 |