Search

정적 메소드

대분류
언어
소분류
Python
유형
instance
static
class
주요 레퍼런스
https://hbase.tistory.com/419
최종 편집 일시
2024/10/27 15:29
생성 일시
2024/08/07 05:16
14 more properties

인스턴스(instance) 메서드

클래스에 아무 데코레이터(decorator) 없이 메서드를 선언하면 해당 메서드는 인스턴스 메서드로 취급
첫 번째 매개 변수로 클래스의 인스턴스가 넘어옴
첫 번째 매개 변수는 관행적으로 self라고 한다.
인스턴수 메서드는 이 self를 통해
인스턴스 속성(attribute)에 접근하거나 다른 인스턴스 메서드를 호출 가능
클래스 속성에 접근하거나 클래스 메서드를 호출 가능
class Counter: def __init__(self, value = 0): #인스턴스 메서드 self.value = value def increment(self, delta = 1): self.value += delta def decrement(self, delta = 1): self.value -= delta >>> counter = Counter() >>> counter.value 0 >>> counter.increment(3) >>> counter.value 3 >>> counter.decrement(2) >>> counter.value 1 >>> counter.increment() >>> counter.value 2
Python
복사

정적 메소드 선언

같은 점
둘 다 인스턴스(__init__)를 만들지 않아도 class 메서드를 바로 실행할 수 있다.
#staticmethod class hello: num = 10 @staticmethod def calc(x): return x + 10 print(hello.calc(10)) #결과 20
Python
복사
#classmethod class hello: num = 10 @classmethod def calc(cls, x): return x + 10 print(hello.calc(10)) #결과 20
Python
복사

@staticmethod

@classmethod

staticmethod에서 cls(해당 클래스를 지침) 인자가 추가된 것