본문 바로가기
Programming/Python

파이썬 클래스 (Class) 함수 심화 편 [상속, self, _inst_] (파이썬 문법)

by 심코딩 2022. 4. 18.

일단 오늘은 저번 글에 이어서 클래스 (Class) 함수에 대해 조금 더 심화 과정으로 들어가 보려합니다.

 

클래스 함수에 대한 기초가 필요한 분들은 아래 포스팅 먼저 확인 부탁드립니다.

https://s1mcoding.tistory.com/7

 

클래스(Class) 함수란? - 파이썬 코딩 기본 문법 (Python)

오늘은 파이썬 기본 공부를 하면서 굉장히 헷갈렸던 개념중의 하나인 클래스 (Class)에 대해 설명을 해보려 한다. 사실 나도 공부를 하면서 여러 티스토리, 블로그를 찾아보았지만 그 특유의 공대

s1mcoding.tistory.com


조만간 포스팅하게 될 내 개인 프로젝트도 하다보면 클래스를 이용할 일이 굉장히 많다라는걸 점검 깨닫고 있는 상황이라 더더욱 저 자신도 조금 더 확실하게 공부를 하게 되네요..

 

이번에는 클래스에서 더 심화로 들어가서 '클래스 상속', self, _inst_ 의 개념에 대해 알아보려고 합니다.

 

맥주의 맛과 가격을 정리 해보자.

개인적으로 호주에 거주하다 보니 자연스럽게 맥주와 친근하게 되었고, 요즈음도 주위사람들과 즐겨 먹게 되는데 이 맥주 또한 맛과 종류가 우리가 일반적으로 생각하는 것 보다는 굉장히 다양합니다. 이 다양한 맥주에 대해 내가 가격과 맛을 따로 클래스를 이용해서 정리하고 싶다고 해봅시다.

 

class Beer:

Beer 라고 하는 클래스를 만들어 두었습니다.

 

class Beer:
a = Beer()

a라는 맥주를 Beer 클래스 안에 넣었습니다. 여기까지는 굉장히 간단하며 이전 포스팅을 통해 볼 수 있을 것입니다.

이제 __init__ 에 대해서 알아봅시다.

 

__init__ 이라고 하는 함수는 initiate (개시하다) 의 약자입니다. 특징으로는 앞뒤에 언더바가 두개씩 붙습니다. 이 함수는 말 그대로 Beer라고 하는 클래스 안에 어떤 객체가 들어왔을 때 바로 실행 되는 함수입니다

.

class Beer:
    def __init__(self):
    print("Welcome")

a = Beer()

이렇게 코드를 작성하게 되면, a라는 객체가 Beer 클래스에 들어오게 되면 자동으로 바로 Welcome글자를 출력 하게 되는 겁니다. 근데 보통 우리가 이렇게 단순 출력값이 출력되는걸 원하는건 아니겠죠..?

 

일단 저는 어떤 맥주가 클래스에 들어오게 되면, 그 맥주에 대한 맛과 가격을 기록하고 싶다고 해봅시다.

 

class Beer:
    def __init__(self):
       self.taste = input("맛: ")
       self.price = input("금액: ")

a = Beer()

그럼 이렇게 input만 간단하게 넣어두면 된다. self는 들어오는 객체 그 자신이라고 생각해주면 된다.

 

가격과 맛 뿐만 아니라 맥주의 종류도 분류를 하고 싶다면?

이제 내가 맥주의 맛과 가격 뿐만 아니라 이 맥주가 어떠한 종류인지 분류를 하고 싶다고 해보자. 이 때 이용할 수 있는 방법은 클래스 안에 또 작은 클래스를 넣으면 되는 것인데, 이를 클래스 상속 이라고 한다.

 

맥주 종류를 넣을 클래스를 Beer_type이라고 해보자 그럼 아래와 같이 코드를 쓰면 된다!

 

class Beer:
    def __init__(self):
       self.taste = input("맛: ")
       self.price = input("금액: ")

class Beer_type(Beer):

클래스를 지정해두고 괄호안에 상속받고 싶은 클래스를 넣으면 된다. 이제 Beer_type 클래스에도 함수를 지정해주어야 하는데, 만약 상위 클래스에 있는 함수를 그대로 가져오고 싶다면 super().__init__() 코드를 써주면 된다!

 

class Beer:
    def __init__(self):
       self.taste = input("맛: ")
       self.price = input("금액: ")

class Beer_type(Beer):
    def __init__(self):
       super().__init__()
       self.whatkind = input("종류: ")

이렇게 오늘은 클래스 함수 심화 과정에 대해 알아보았다!

 

댓글