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
广告