초보자를 위한 @classmethod 및 @staticmethod의 의미 및 사용법
Python에서 @classmethod 및 @staticmethod는 다음을 사용하여 메서드를 정의하는 데 사용되는 데코레이터입니다. 특정한
@classmethod
클래스 메서드는 클래스의 개별 인스턴스가 아닌 클래스에 바인딩되는 메서드입니다. 일반적으로 cls라는 이름의 첫 번째 인수로 클래스가 있어야 합니다. 관례적으로 클래스 메소드 이름은 from_ 또는 create_ 접두사로 지정됩니다.
@classmethod를 사용해야 하는 경우:
예:
class Date: def __init__(self, day, month, year): self.day = day self.month = month self.year = year @classmethod def from_string(cls, date_as_string): day, month, year = map(int, date_as_string.split('-')) return cls(day, month, year)
@staticmethod
정적 메서드는 정적 메서드가 아닌 메서드입니다. 클래스나 인스턴스에 바인딩됩니다. 인스턴스나 클래스 변수에 액세스할 수 없습니다. 정적 메서드는 일반적으로 수정 없이 재사용할 수 있는 유틸리티 함수에 사용됩니다.
@staticmethod를 사용하는 경우:
예:
class Date: @staticmethod def is_date_valid(date_as_string): day, month, year = map(int, date_as_string.split('-')) return day <= 31 and month <= 12 and year <= 3999
@classmethod와 @staticmethod의 차이점
Feature | @classmethod | @staticmethod |
---|---|---|
Access to class | Has access to the class | No access to the class |
Access to instance | No access to instances | No access to instances |
Usage | Factory methods, operations on the class | Utility functions, independent of class or instances |
위 내용은 Python에서 `@classmethod`와 `@staticmethod`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!