Python의 데코레이터는 함수 또는 클래스일 수 있습니다. 이전 섹션에서는 함수 데코레이터를 사용했습니다. 이제 클래스 데코레이터를 정의하는 방법을 알아 보겠습니다.
데코레이터 역할을 하는 사용자 정의 클래스를 정의하겠습니다. 함수가 클래스로 장식/수정되면 함수는 해당 클래스의 인스턴스가 됩니다. 알아보자:
위에 표시된 대로 간단한 클래스 데코레이터를 만들었습니다. 모든 클래스가 데코레이터가 되려면 __call__() 메서드를 구현해야 합니다. __call__() 메서드는 함수 데코레이터의 래퍼 함수와 동일하게 작동합니다.
이제 이 클래스를 사용하여 함수를 장식해 보겠습니다.
프로그램 실행 결과는 다음과 같습니다. 클래스 데코레이터 사용 매개변수 *args 및 **kwargs를 사용하면 이러한 매개변수를 사용하여 __call__() 메서드를 구현하고 이를 수정된 함수에 전달해야 합니다. 일반적인 표현 방법은 다음과 같습니다.
이제 이 클래스 데코레이터를 사용하여 함수를 장식합니다.
클래스 장식 장식 함수
프로그램 실행의 출력 결과는 다음과 유사합니다.
Hello Solo Cui
함수 데코레이터의 래퍼 함수에서 return 키워드를 사용하여 데코레이팅된 함수를 반환할 수 있다는 것을 기억하세요. 여기서도 동일한 작업을 수행하지만 __call__ 메서드 내부에서 수행합니다.
실행 중인 프로그램의 출력은 다음과 같습니다.
TRACY CUI
파이썬 데코레이터 소개가 끝났습니다.
위 내용은 Python 프로그래밍: 클래스 데코레이터와 애플리케이션을 구현하는 방법은 무엇입니까? 파악해야 할 핵심 포인트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!