1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def logging(level): def wrapper(func): def inner_wrapper( * args, * * kwargs): print (level + ": enter function " + func.__name__) return func( * args, * * kwargs) return inner_wrapper return wrapper @logging (level = 'INFO' ) def say(something): print ( "say {}!" . format (something)) if __name__ = = '__main__' : say( 'hello' ) m = logging(level = 'INFO' )(say) m( 'hello' ) |
上面直接使用@和下面调用结果不应该是一样的吗?可结果明显不一样