본문 바로가기
python

파이썬 정적 함수 vs 동적함수

by 와우지니 2023. 5. 7.
반응형

파이썬 정적 함수 vs 동적함수 ( static function vs instance method)

 

정적 함수(static function)
- 정적 함수는 클래스 내에서 @staticmethod 데코레이터를 사용하여 정의됩니다.
- 정적 함수는 인스턴스 상태에 의존하지 않으며 인스턴스 속성이나 메서드에 액세스할 수 없습니다.
- 정적 함수는 클래스에 바인딩되어 있어 클래스 인스턴스를 생성하지 않고도 사용할 수 있습니다.
- 정적 함수는 주로 클래스와 관련된 유틸리티 함수로 사용됩니다.

정적 함수(static function) 예시

class MathUtils:
    @staticmethod
    def add(a, b):
        return a + b

# 클래스를 통해 정적 함수를 호출합니다. 인스턴스를 생성하지 않아도 됩니다.
result = MathUtils.add(5, 7)

 


 

동적 함수(instance method)
- 동적 함수는 일반적인 클래스 메서드로 정의되며, 첫 번째 인수로 인스턴스를 참조하는 self 파라미터를 사용합니다.
- 동적 함수는 인스턴스 상태에 액세스하고 수정할 수 있습니다.
- 동적 함수를 사용하려면 클래스의 인스턴스를 생성해야 합니다.
- 동적 함수는 인스턴스의 상태를 사용하거나 변경하는 작업을 수행합니다.

 

동적 함수(instance method) 예시

class Calculator:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def add(self):
        return self.a + self.b

# 클래스 인스턴스를 생성하고 동적 함수를 호출합니다.
calculator = Calculator(5, 7)
result = calculator.add()

 

 

[참고]

https://noanomal.tistory.com/entry/staticmethod-%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0-%EA%B0%9D%EC%B2%B4%EC%84%A0%EC%96%B8-%EC%97%86%EC%9D%B4-%ED%81%B4%EB%9E%98%EC%8A%A4-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

 

@staticmethod 데코레이터, 객체선언 없이 클래스 메서드 사용하기

@staticmethod 데코레이터, 객체선언 없이 클래스 메서드 사용하기¶설명¶ @staticmethod 데코레이터를 사용하면, 클래스의 객체를 생성하지 않고도 사용할 수 있습니다 class 안에서 다른 내용에 의존하

noanomal.tistory.com

 

반응형

댓글