본문 바로가기

Python

[Python] Class

파이썬에도 클래스가 존재합니다.

클래스를 정의해서 객체를 생성할 수 있는데

이때 생성자(Constructor)도 만들 수 있습니다.

클래스와 생성자를 만드는 방법을 알아보겠습니다.

 

class Book():
   
    def __init__(self, title, price):
     
        self.title = title
        self.price = price
   
    def printInfo(self):
        print(self.title, self.price)
   

 

class라는 코드를 입력하면 클래스를 생성할 수 있고,

생성자는 Java랑은 조금 다른 형식인데

def  __init__과 같은 형식입니다.

이떄 파라미터로 self라는 것이 들어가는데

Java에서 사용했던 this와 같은 역할을 합니다.

생성자에서 멤버 변수들을 선언해주고

밑에는 멤버 변수를 출력해주는 printInfo라는 메소드를 작성했습니다.

 

그리고 파이썬에서는 Java와는 다르게 소멸자(destructor)라는 것이 존재하는데

생성자객체가 생성될 때 실행되는 메소드인 반면,

소멸자객체각 없어질 때 실행되는 메소드입니다.

 

def __del__(self):
        print("책 삭제")

 

만드는 방법은 생성자와 비슷한데

__init__ 대신에  __del__을 사용합니다.

 

b2 = Book("원피스", 7000)
b2.printInfo()
print("-------------")

 

메인 코드가 다음과 같다면

첫번째 코드에서 생성자 메소드가 실행되고,

두번쨰 줄 코드에서는 정보를 출력하는 메소드를 실행합니다.

그리고 세번째 줄의 프린트문까지 출력이 끝나면

클래스 객체가 사라지고, 소멸자 메소드가 실행됩니다.

그 이유는 Garbage Collection으로 인해 

그 객체를 가리키는 변수가 없게 되어서 Heap영역을 자동으로 정리했기 때문입니다.

'Python' 카테고리의 다른 글

[Python] 다중 상속  (0) 2025.03.06
[Python] 상속과 오버라이딩  (0) 2025.03.06
[Python] Up Down 게임  (0) 2025.03.05
[Python] 로또 번호 뽑기  (0) 2025.03.05
[Python] 함수  (0) 2025.03.04