관련글 ▼
[인프런 리프 2기] 02. 파이썬 중급 과정 1주차 강의
[인프런 리프 2기] 03. 파이썬 중급 과정 2주차(1) 클래스 심화-1
[인프런 리프 2기] 04. 파이썬 중급 과정 2주차(2) 클래스 심화-2
메소드(Method)란, 클래스 안에 정의된 함수를 의미한다. 만약 해당 클래스의 인스턴스의 속성으로써 사용됐다면 메소드는 인스턴스 객체를 첫번째 인수(first argument)로 가져올 것이다(주로 self로 불림). (출처: 파이썬 용어집)
3번채 챕터에서는 클래스 안에서 사용되는 메소드의 종류와 각자의 특징에 대해서 공부했다. 섹션2에서 굉장히 많이 헤맸다보니 다음 섹션을 할 수 있을까 싶다 😫
#클래스구조
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를 첫번째 인자로 받는다. 위의 코드 블록에서 클래스 변수 밑에 정의된 메소드들은 모두 인스턴스 메소드이다.
# 클래스 메소드
@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 라는 파이썬의 내장함수를 입력하고 그 아래에 메소드를 작성하면 된다.
# 스태틱 메소드
@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) >
[인프런 리프 2기] 07. 파이썬 중급 과정 2주차(5) 데이터 모델-2,3 (0) | 2021.03.21 |
---|---|
[인프런 리프 2기] 06. 파이썬 중급 과정 2주차(4) 데이터 모델-1 (0) | 2021.03.21 |
[인프런 리프 2기] 04. 파이썬 중급 과정 2주차(2) 클래스 심화-2 (0) | 2021.03.20 |
[인프런 리프 2기] 03. 파이썬 중급 과정 2주차(1) 클래스 심화-1 (0) | 2021.03.19 |
[인프런 리프 2기] 02. 파이썬 중급 과정 1주차 강의 (0) | 2021.03.11 |
댓글 영역