00.装饰是未函数和类指定管理代码的一种方式。装饰器本身的形式是处理其他的可调用对象的可调用的对象。
*函数装饰器在函数定义的时候进行名称重绑定,提供一个逻辑层来管理函数和方法或随后对它们的调用。
*类装饰器在类定义的时候进行名称重绑定,提供一个逻辑层来管理,或管理随后调用它们所创建的示例。
01.管理调用和实例
*函数装饰器安装包装器对象,以在需要的时候拦截随后的函数调用并处理它们
*类装饰器安装包装器对象,以在需要的时候拦截随后的实例创建调用并处理它们。
02.装饰器未这样的任务提供了一种显式的语法,它使得意图明确,可以最小化扩展代码的冗余,并且有助于确保正确的API使用。
*装饰器由一种非常明确的语法
*当主体函数或类定义的时候,装饰器应用一次
03.函数装饰器:函数装饰器是一种关于函数的运行时声明,函数的定义需要遵守此声明。
04.装饰器
func(6,7)
decorator(func)(6,7)
05.class C:
@staticmethod
def meth(...):...
class C:
@property
def name(self):....
05.def decorator(F):
#Save or use function F
#Return a different
@decorator
def func():...
06.def decorator(F):
def wrapper(*args):
return wrapper
07.装饰器参数:函数装饰器和类装饰器似乎都能接收参数,尽管实际上这些参数传递给了正式返回装饰器的一个可调用对象,而装饰器反过来又返回一个可调用对象。
08.Private声明类实例的那些不能获取或复制的属性,而从类的方法的代码内部获取或复制除外。
Public声明了一个类的实例属性,它可以从类的外部一级在类的方法内部获取和访问。