@static method

김동현·2023년 8월 9일

python

목록 보기
1/8

(ref : geeksforgeeks)

Class method

- 배경지식
1. 파이썬에서 다른 함수 안에 함수 정의가 가능하다
2. 파이썬에서 함수는 다른 함수에 매개 변수로 전달될 수 있다
  • 함수 데코레이터


    Decorator는 기존 함수를 wrapping하여 기능을 앞뒤로 추가할 수 있습니다.

    이를 통해 코드의 중복을 줄이고 재사용성을 높일 수 있습니다.


    이해에 도움되는 링크 : https://wikidocs.net/160127

@classmethod decorator

  • 함수가 정의된 이후 evaluated(표현식이나 코드가 실행되어 결과를 얻는 과정)되는 표현식인 built-in function decorator입니다.
  • 인스턴스 매서드가 인스턴스를 받는 것처럼, 클래스 매서드는 implicit(암시적(값을 지정하지 않아도 컴파일러 등에서 자동으로 처리되는 경우)) 으로 첫번째 인자를 받습니다
    class Car:
        def func(cls, arg1, arg2, ...):
            pass
    
    func: classmethod로 변환해야 하는 함수
    returns:classmethod로 변환된 함수
  • object 인스턴스가 아닌 (class를 가리키는 class parameter)를 갖기 때문에 class의 state에 access할 수 있습니다.

Static method

  • Static method는 implicit first argument를 받지 않습니다.
  • Static method 역시 object of class가 아닌 class에 bound되어있습니다.
  • Static method는 class의 state에 access할 수 없습니다.
  • method는 클래스 안에 정의되어 있지만, 클래스나 인스턴스와는 별개로 독립적으로 동작합니다.(method는 클래스에 존재하는 것이 합리적이라는 이유로 클래스 안에 정의되어 있을 뿐입니다.)
class Car(obj):
    @staticmethod
    def func(arg1, arg2, ...):
        pass
returns : 함수 func에 대한 staticmethod(즉 해당 함수를 정적 메서드로 변환하여 return)

profile
nice to meet you:)

0개의 댓글