Programming components
Object: Nouns ; Data constructs ; They're the things that we're going to operate upon.
Functions/Methods: Verbs ; Actions ; They're all the different things that we're going to be able to do.
eg: My OS you might consider that an object. getenv that's going to be our verb.
Decorators : Adjectives; Add additional functionality to code; Common in frameworks
Using a decorator
#Snippet from Flask
#register https://myserver/api/products
@route('api/products') #route registration
def get_products:
#code to list from database
pass
使用装饰器@route告诉Flask,当某人访问api/products,这里的代码就是我要调用的。
这就是幕后的样子:
Creating a decorator
def logger(func):
def wrapper():
print('Logging execution')#我的code
func() #你的code
print('Done logging')#我的code
return wrapper
@logger。 #如果某人用我们的装饰器,你(python)就调用制定函数wrapper()
def sample():
print('-- Inside sample function ')
sample()
Logging execution
-- Inside sample function #执行func()
Done logging#利用注解的形式实现了一个AOP功能 ——弹幕(虽然看不懂觉得很厉害的样子)
应用场景:
If I need to log execution which is what I'm trying to demo here, or maybe there's something where I need to do some level of authentication身份认证, and I need to make sure that the users log on, then I might go ahead and create a Decorator.