>백엔드 개발 >파이썬 튜토리얼 >Python 데코레이터가 매개변수를 허용할 수 있나요?

Python 데코레이터가 매개변수를 허용할 수 있나요?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-20 18:13:18978검색

Can Python Decorators Accept Parameters?

데코레이터가 매개변수를 사용할 수 있나요?

코드가 인수(insurance_mode)와 함께 데코레이터(@execute_complete_reservation)를 사용하려고 시도했지만 실패합니다. . 이는 매개변수가 있는 데코레이터의 구문이 다르기 때문에 발생합니다.

수정된 데코레이터 구문:

매개변수가 있는 데코레이터는 함수를 인수로 취한 후 다른 함수를 반환하는 함수를 반환합니다. 기능. 기본적으로 일반 데코레이터를 반환합니다.

def decorator_factory(argument):
    def decorator(function):
        def wrapper(*args, **kwargs):
            # Additional code
            function(*args, **kwargs)
            # More additional code
        return wrapper
    return decorator

데코레이터 적용:

이 구문을 사용하면 원본 코드를 다음과 같이 수정할 수 있습니다.

@execute_complete_reservation_factory(True)
def test_booking_gta_object(self):
    self.test_select_gta_object()

수정된 코드에서 @execute_complete_reservation_factory는 다음과 같은 데코레이터를 반환하는 팩토리 함수입니다. 실제 테스트 함수를 인수로 사용합니다.

위 내용은 Python 데코레이터가 매개변수를 허용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.