無參python
def test(fun): print('log - 1') def decorator(a, b): print('log - 3') fun(a, b) print('log - 4') print('log - 2') return decorator @test def fun(a, b): print(a + b) if __name__ == '__main__': fun(10, 20) output: ----------------- log - 1 log - 2 log - 3 30 log - 4
有參code
def test(arg): print('log - 1') def _start(fun): print('log - 3') def decorator(a, b): print('log - 5 ') fun(a, b) print(' log - 6') print('log - 4') return decorator print('log - 2') return _start @test('abc') def fun(a, b): print(a + b) if __name__ == '__main__': fun(10, 20) output: -------------------- log - 1 log - 2 log - 3 log - 4 log - 5 30 log - 6