함수에 대한 특정 인수가 몇 가지 기준을 통과하는지 테스트하는 파이썬 함수 데코레이터를 작성하고 싶습니다. 예를 들어, 다음 내가파이썬의 데코레이터에 특정 인수를 전달하는 방법
def ensure_even(n) :
def decorator(function) :
@functools.wraps(function)
def wrapper(*args, **kwargs):
assert(n % 2 == 0)
return function(*args, **kwargs)
return wrapper
return decorator
@ensure_even(arg2)
def foo(arg1, arg2, arg3) : pass
@ensure_even(arg3)
def bar(arg1, arg2, arg3) : pass
를이 (유효하지 파이썬 코드) 같은 것을 할 수 있도록하려면, 내가 어떤 인수도 항상하는지 테스트한다고 가정하지만 위를 달성하는 방법을 알아낼 수 없습니다. 데코레이터에 특정 인수를 전달하는 방법이 있습니까? (위의 foo와 arg3에 대한 arg2와 같은)
고마워!
파라 메트릭 데코레이터를 만드는 유일한 방법은 중첩 된 데코레이터를 사용하는 것입니다. –