본문 바로가기
Python, C, C++

[요점만 파이썬] 클래스 심화

by 소나무기운 2021. 11. 16.
반응형

[2021/11/16] 처음시작

 

소나무 기운 ,  전자제품 개발/생산

클래스 심화

어떤 클래스의 인스턴스인지 확인할  수 있어요.

클래스 변수, 멤버함수, 가비지 컬렉터에 대해서 알아보죠.

 

 

인스턴스 확인

# 클래스를 선언
class Bread:
    def __init__(self, name, price):  # 생성자
        self.name = name
        self.price = price

    def get_sum(self, cnt):  # 메소드 함수
        return self.price * cnt  # 갯수를 받아 가격을 반환


# 빵 종류를 생성
bread = Bread("식빵", 1000)

# 어떤 클래스의 인스턴스인지 확인
print(isinstance(bread, Bread))

print(type(bread))

결과

PS C:\Users\pinee> & C:/Python38/python.exe c:/Users/pinee/OneDrive/blog/aaa.py
True
<class '__main__.Bread'>
PS C:\Users\pinee>

isinstance()와 type()으로 인스턴스를 확인할수 있어요.

 

 

클래스 변수와 멤버함수, 가비지 컬렉터(garbagecollector)

# 클래스를 선언
class Bread:
	num = 0
    
    def __init__(self, name, price):  # 생성자
        self.name = name
        self.price = price
        num++          # 빵의 종류 증가
        
    def __del__(self):
        printf("가비지 컬렉터")
 
    def get_sum(self, cnt):  # 메소드 함수
        return self.price * cnt  # 갯수를 받아 가격을 반환
 
 
# 빵 종류를 생성
# 클래스를 사용
breads = [
    Bread("식빵", 1000),
    Bread("단팥빵", 500)
]
 
# 빵 종류 보기
printf(breads.num)

클래스 이름 아래에 클래스 변수를 선언할 수 있어요.

 

def를 이용하여 멤버함수를 선언할 수 있어요.

클래스가 종료될때 __del__인 가비지 컬렉터는 자동으로 호출되요.

 

 

상속

 

기존의 클래스를 상속받아 새로운 클래스를 생성합니다. 기능을 추가하여 만듭니다.

# 클래스를 선언
class Bread:
	num = 0
    
    def __init__(self, name, price):  # 생성자
        self.name = name
        self.price = price
        num++          # 빵의 종류 증가
        
    def __del__(self):
        printf("가비지 컬렉터")
 
    def get_sum(self, cnt):  # 메소드 함수
        return self.price * cnt  # 갯수를 받아 가격을 반환
 
 
# 상속
class Store(Bread):   # Bread클래스를 상속받아서 클래스 선언
	def __init__(self):
    	Bread.__ini__(self, "식빵", 1000)  # Bread클래스의 생성자 사용

 

 

 

마무리

생성자, 가비지컬렉터, 멤버함수, 클래스변수, 상속 등의 기능을 사용하여 모듈화하고 독립적인 객체를 생성할 수 있어요.

 

 

참고문헌

 

 

 

 

 

 

틀린 부분이나 질문은 댓글 달아주세요.

즐거운 하루 보내세요. 감사합니다.

 

 

반응형

댓글