[Python] class, class method, static method, named tuple
Contents
1. class method
- 일반적으로 클래스 안에 정의된 함수는
self
를 인자로 받는 인스턴스 함수(Instance Method) @classmethod
데커레이터가 함수에 정의되어 있다면 이는 클래스 함수(Class Method)로 클래스 전체에 영향을 줌- 클래스 함수는 생성된 모든 객체에 영향을 줌
- Python에서는 클래스 함수의 매개변수로
cls
를 사용 - 다음 예제코드는 클래스 함수를 통해 해당 클래스로부터 생성된 객체의 수를 확인할 수 있음
|
|
2. static method
- 정적 함수는 클래스나 객체에 영향을 미치지 않음, 편의를 위한 함수
@staticmethod
데커레이터가 함수에 정의 되어 있으면 이는 정적 함수를 의미- 전달인자로
self
나cls
가 없음 - 정적 함수의 경우 객체 생성 없이 해당 함수의 호출이 가능!
|
|
3. 네임드 튜플(Named Tuple)
- 클래스 선언 없이 객체를 생성하는 방법
- tuple 성질을 가지면서 각 요소에 변수 이름으로 접근이 가능
- 값이 불변(immutable)하는 객체
- 일반 객체 선언보다 공간/시간 효율성이 좋음
- Python 자체에서 지원되지 않으므로
from collections import namedtuple
import 필요 - 딕셔너리에서 key, value 값을 추출하여
keyword argument
형태로 값을 전달할 수 있음
|
|
본 포스팅 내용은
처음시작하는 파이썬(Introducing Python)
을 학습한 내용에 대한 요약 글입니다. 코드에 문제가 있을 수 있으며 다소 부정확한 내용이 있을 수 있으니 참고하시기 바랍니다. 잘못된 내용이 있는 경우 덧글로 남겨주시면 내용을 반영하여 수정하도록 하겠습니다. 감사합니다.
[Reference]
[1] 처음시작하는 파이썬(Introducing Python), p.186-195