Instance, Class, Static Method(메소드)에 대해 간단히 요약해봤습니다.
인스턴스 메소드는 클래스로 인스턴스를 선언 후 클래스 내부 메소드를 사용 가능하고
클래스 메소드와 스태틱 메소드는 인스턴스를 선언하지 않아도 내부 메소드를 사용할 수 있습니다.
종류 | 설명 | 사용 예시 | 특징 | 선언방법 |
Instance 메소드 | 클래스로 인스턴스를 선언 후 사용 가능 | person_01 = Person('홍길동) person_01.print_name() |
인스턴스 자신을 self로 전달 | 클래스 내에서 def print_name(self): |
Class 메소드 | 클래스로 인스턴스를 선언하지 않아도 사용 가능 | Person.print_name('홍길동) | 클래스 자신을 cls로 전달 | 클래스 내에서 @classmethod def print_name(cls, name) |
Static 메소드 | 인스턴스를 서언 후 사용해도 되고, 선언하지 않고 사용해도 됨 | Person.print_name('홍길동') | 인스턴스나 클래스에게 아무것도 전달받지 않음, 그냥 함수처럼 사용 가능 | 클래스 내에서 @staticmethod def print_anme(name) |
# 1. Instance 메서드 예시
class InstanceMethod(object):
def __init__(self, name):
self.name = name
def introduce_myself(self):
return '저는 {0}입니다.'.format(self.name)
inst_method = InstanceMethod('홍길동')
inst_method.introduce_myself()
>>> 저는 홍길동입니다.
# 2. Class 메서드 예시
class ClassMethod(object):
def __init__(self, name):
self.name = name
@classmethod
def introduce_myself(cls, name):
return '저는 {0}입니다.'.format(name)
ClassMethod.introduce_myself('홍길동')
>>> 저는 홍길동입니다.
# 3. Static 메서드 예시
class StaticMethod(object):
def __init__(self, name):
self.name = name
@staticmethod
def introduce_myself(name):
return '저는 {0}입니다.'.format(name)
StaticMethod.introduce_myself('홍길동')
>>> 저는 홍길동입니다.
아래 3개 자료를 참고해서 정리했습니다.
정리가 아주 잘되어있는 자료들이니 보다 상세한 내용이 궁금하신 분들은 꼭 참고하시기 바랍니다.
감사합니다.
1. SCHOOL OF WEB, [파이썬 - OOP Part 4. 클래스 메소드와 스태틱 메소드], schoolofweb.net/blog/posts/%ED%8C%8C%EC%9D%B4%EC%8D%AC-oop-part-4-%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%A9%94%EC%86%8C%EB%93%9C%EC%99%80-%EC%8A%A4%ED%83%9C%ED%8B%B1-%EB%A9%94%EC%86%8C%EB%93%9C-class-method-and-static-method/
2. 데이터과학 삼학년, [Instance method, Class method, Static method], dodonam.tistory.com/122
3. jadehan, [Python 매개변수 self 와 cls 차이 그리고 static method에 대해서], paphopu.tistory.com/entry/Python-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-self-%EC%99%80-cls%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EA%B7%B8%EB%A6%AC%EA%B3%A0-static-method%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C
[Airflow] ModuleNotFoundError: No module named 'sqlalchemy.ext.declarative.clsregistry' (0) | 2021.04.20 |
---|---|
[Python] Python으로 파일생성 시간 및 용량 출력하기 (0) | 2021.04.19 |
[Python] 인자를 넘겨받아 스크립트(.py 파일) 실행하는 2가지 방법 (0) | 2021.04.05 |
[Python] DataFrame np.inf, -np.inf 처리하기 (0) | 2021.03.31 |
[Python 함수 인자 입력 받기] Python *args와 **kargs (0) | 2021.03.26 |