So schreiben Sie Testcode zur Bewertung von Python-Dekoratoren. Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt.
Mit dem Hoge Decorator wird 1 zum Rückgabewert addiert.
def hoge(func):
@functools.wraps(func)
def wrapper(n):
return func(n) + 1
return wrapper
@hoge
def sample(n):
return n * 2
if __name__ == '__main__':
assert sample(3) == 7
Der Dekorateur selbst kann wie folgt bewertet werden (ANY_VALUE
kann alles sein):
assert hoge(lambda n: 6)(ANY_VALUE) == 7
Der folgende Hoge-Dekorator addiert den im Argument des Dekorators angegebenen Wert zum Rückgabewert.
def hoge(m):
def decorator(func):
@functools.wraps(func)
def wrapper(n):
return func(n) + m
return wrapper
return decorator
@hoge(2)
def sample(n):
return n * 2
if __name__ == '__main__':
assert sample(2) == 6
Der Dekorateur selbst kann wie folgt bewertet werden.
assert hoge(2)(lambda n: 4)(ANY_VALUE) == 6
Recommended Posts