-
class method vs. static methodToday_I_Learned/Python 2023. 9. 26. 11:23
공통점
별도 인스턴스 생성없이 클래스를 대상으로 클래스 이름 뒤에 바로 '. ' 오퍼레이터를 붙여서 호출 가능
ex)
class ExampleClass: class_name = "ExampleClass" @classmethod def example_class_method(cls): print(f"{self.class_name}: This is classmethod.") @staticmethod def example_static_method(): print(f"{self.class_name}: This is staticmethod.")
ExampleClass.example_class_method() >>> ExampleClass: This is classmethod. ExampleCalss.example_static_method() >>> ExampleClass: This is staticmethod.
class method 클래스 메서드
- 클래스를 첫번째 Argument로 받음.
- class 속성 및 함수만 접근 가능, 인스턴스 속성 및 함수에는 접근 불가
static method 정적 메서드
- 클래스나 인스턴스 Argument를 필요로 하지 않음.
- 인스턴스/클래스 속성 및 함수에 접근 불가
- 사용 목적: 비슷한 종류의 여러 유틸리티 메서드를 하나의 클래스로 묶어 관리하고 싶을 때
'Today_I_Learned > Python' 카테고리의 다른 글
[사용법] virtualenvwrapper (2) 2023.11.21 List 정렬 기준, iterable객체의 요소가 iterable 일 때 (0) 2023.11.01 이터레이터 iterator (0) 2023.09.17 Python3 Scapy에 Read할 수 있는 Packet Header 추가하기(Scapy-2.4.3) (0) 2021.02.15 연산자 Overloading (0) 2021.01.27