상세 컨텐츠

본문 제목

[인프런 리프 2기] 05. 파이썬 중급 과정 2주차(3) 클래스 심화-3

경험/2021 인프런리프2기

by mizu-umi 2021. 3. 20. 22:33

본문

728x90

관련글 ▼

[인프런 리프 2기] 02. 파이썬 중급 과정 1주차 강의

[인프런 리프 2기] 03. 파이썬 중급 과정 2주차(1) 클래스 심화-1

[인프런 리프 2기] 04. 파이썬 중급 과정 2주차(2) 클래스 심화-2

 


파이썬 클래스 심화 : 클래스 & 메소드 심화 (3)

  • 클래스 메소드 Class Method
  • 인스턴스 메소드 Instance Method
  • 동적 메소드 (or 스태틱 메소드) Static Method
  • 3가지 메소드 활용 실습
메소드(Method)란, 클래스 안에 정의된 함수를 의미한다. 만약 해당 클래스의 인스턴스의 속성으로써 사용됐다면 메소드는 인스턴스 객체를 첫번째 인수(first argument)로 가져올 것이다(주로 self로 불림). (출처: 파이썬 용어집)

 

3번채 챕터에서는 클래스 안에서 사용되는 메소드의 종류와 각자의 특징에 대해서 공부했다. 섹션2에서 굉장히 많이 헤맸다보니 다음 섹션을 할 수 있을까 싶다 😫

 


인스턴스 메소드 Instance Method

#클래스구조
class Car():

    # 클래스 변수
    price_per_raise = 1.0

    # 인스턴스 메소드 Instance Method
    def __init__(self, company, details):
        self._company = company
        self._details = details
	...

    def get_price(self):
        return 'Previous Car Price -> company {}, price {}'.format(self._company,self._details.get('price'))

    def get_price_calc(self):
        return 'Current Car Price -> company {}, price {}'.format(self._company,self._details.get('price')* Car.price_per_raise)

클래스 안의 기본적인 메소드는 모두 인스턴스 메소드로 self를 첫번째 인자로 받는다. 위의 코드 블록에서 클래스 변수 밑에 정의된 메소드들은 모두 인스턴스 메소드이다.

 

클래스 메소드 Class Method

    # 클래스 메소드
    @classmethod
    def raise_price(cls, per):
        if per <=1: 
            print('Please enter 1 or above')
            return
        cls.price_per_raise = per
        print ('Succeed! price increased.')

클래스 메소드는 객체가 아닌 클래스에 종속되는 메소드로 인스턴스 메소드의 self처럼 cls라는 인자를 무조건 첫번째 인자로 받는다. 클래스 변수를 사용하고 싶다면 인스턴스 메소드보다 클래스 메소드를 사용하는 게 좋다. @classmethod 라는 파이썬의 내장함수를 입력하고 그 아래에 메소드를 작성하면 된다.

 

스태틱 메소드 Static Method

    # 스태틱 메소드
    @staticmethod 
    def car_check(inst):
        if inst._company == 'Bmw':
            return 'Ok! This car is {}'.format(inst._company)
        else:
            return 'oops'

다른 이름으로는 동적 메소드라고 부르며 특정한 parameter(self와 cls)를 받지 않는 메소드이다. @staticmethod라는 내장함수를 입력하고 그 아래에 메소드를 작성하면 된다. 유연한 메소드를 작성하고 싶을때 사용하는게 좋다.

 


< 강의 출처 - 인프런 우리를 위한 프로그래밍 파이썬 중급 (Inflearn Original) >

728x90
반응형

관련글 더보기

댓글 영역