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