Python 的装饰器使用的时候,采用 @
的语法。因为之前学 spring 框架的时候,经常会用到 @Controller
等注解。因为都有符号 @ ,所以其实有点分不清这两个概念。
Python 的装饰器使用的时候,采用 @
的语法。因为之前学 spring 框架的时候,经常会用到 @Controller
等注解。因为都有符号 @ ,所以其实有点分不清这两个概念。
不是一回事,java的注解相信你已经了解了 ,我就不赘述了,python的装饰器简单可以理解为函数的参数,python有个特点是函数也能当参数用
def use_logging(func):
def wrapper():
logging.warn("%s is running" % func.__name__)
return func()
return wrapper
@use_logging
def foo():
print("i am foo")
foo()
比如这段代码,use_logging设置为装饰器,执行foo的时候回去找use_logging 然后把foo作为参数传递进去