관리 메뉴

FU11M00N

[Python] 정적 메소드 본문

Programming/Python

[Python] 정적 메소드

호IT 2020. 11. 17. 14:46

- 정적 메소드

• 객체(인스턴스)를 생성하지 않고 클래스를 이용해서 직접 호출할 수
있는 메소드
• 클래스에서 직접 접근할 수 있는 메소드 두가지

 

-@staticmethod
-@classmethod

 

 

 

@staticmethod

• @staticmethod 데코레이터로 수식
• self 키워드 없이 정의

 

staticmethod 설명

예제 1

class Calc:
    @staticmethod
    def add(a,b):
        return a+b
cal = Calc()
print(cal.add(1,2))

결괏 값

 

@classmethod

• @classmethod 데코레이터로 수식
• staticmethod 와 유사하지만 첫번째 매개변수로 클래스 객체가 전달되는 것이 다릅니다.
• cls 매개변수 사용
• 모든 인스턴스가 공유하는 클래스 변수와 같은 데이터를 생성, 변경
또는 참조하기 위한 메소드

 

classmethod 설명

예제 2

class Calc:
    @classmethod
    def add(cls,a,b):
        return a+b
cal = Calc()
print(cal.add(1,2))

결괏 값

예제 3

class Student:
    @classmethod
    def cmethod(cls):
        print("클래스 메소드")
        print(cls)
    @staticmethod
    def smethod():
        print("정적 메소드")
Student.cmethod()
Student.smethod()

결괏 값

 

Comments