Python 包装类
在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('TutorialsPoint')
print(obj.print_name())
在这里, Wrapped 是要包装的类的名称。它作为一个参数传递给一个函数。在函数内部,我们有一个Wrapper类,通过传递类的属性来修改它的行为,并返回修改后的类。返回的类被实例化,其方法现在可以被调用。
当你执行这段代码时,它会产生以下 输出 −
TutorialsPoint