Python 中的函数是一阶对象。一个函数可以将另一个函数作为其参数,并在其中包装另一个函数定义。这有助于在不实际更改函数的情况下修改函数。此类函数称为装饰器。
此功能也可用于包装类。此技术用于在实例化类后通过将类的逻辑包装在装饰器中来管理类。
例
def decorator_function(Wrapped):
class Wrapper:
def __init__(self,x):
self.wrap = Wrapped(x)
def print_name(self):
return self.wrap.name
return Wrapper
@decorator_function
class Wrapped:
def __init__(self,x):
self.name = x
obj = Wrapped('qikepu')
print(obj.print_name())
此处,Wrapped 是要包装的类的名称。它作为参数传递给函数。在函数内部,我们有一个 Wrapper 类,使用传递的类的属性修改其行为,并返回修改后的类。返回的类已实例化,现在可以调用其方法。
当您执行此代码时,它将生成以下输出 -
qikepu