django 框架中自定义标签在注册时使用装饰器的过程中使用@register.simple_tag与@register.simple_tag()结果一致的解释
‘‘‘ 理解调用@log与@log()效果一致的原因 ‘‘‘ def log(func=None): def wraper(fun): def inner(*args,**kwargs): print(‘do something before‘) res = fun(*args,**kwargs) print(‘do something after‘) return res return inner if func is None: return wraper elif callable(func): return wraper(func) @log def my_func(): print(‘i am my_func‘) if __name__ == ‘__main__‘: my_func() #my_func = log(func) #my_func = log()(func)
原文:https://www.cnblogs.com/taoge188/p/10603488.html