행궁동 데이터 엔지니어

반응형

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
반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band