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.