Python - 包装类
在 Python 中,function 是一等对象。function 可以将另一个 function 作为其参数,并在其内部包装另一个 function 定义。这有助于在不实际更改 function 的情况下修改它。此类 function 被称为 decorators。
此特性也适用于包装 class。这种技术用于在 class 被实例化后,通过在 decorator 中包装其逻辑来管理 class。
示例
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('')
print(obj.print_name())
在这里,Wrapped 是要包装的 class 的名称。它作为参数传递给一个 function。在 function 内部,我们有一个 Wrapper class,使用传递的 class 的属性修改其行为,并返回修改后的 class。返回的 class 被实例化,现在可以调用其 method。
执行此代码时,将产生以下输出 −