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