Python 简明教程

Python - Wrapper Classes

在 Python 中, function 是一个一阶对象。一个函数可以将另一个函数作为其参数,并在其内部包装另一个函数定义。这有助于修改一个函数,而不实际改变它。这样的函数叫做 decorators

此特性也适用于 wrapping a class 。此技术用于在类实例化之后通过对其逻辑进行 Wrapped 包装来管理此类。

Example

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 class ,通过传递类 attributes 修改其行为,并返回修改后的类。返回的类被实例化,现在可以调用它的 method

执行此代码时,它将生成以下 output -

TutorialsPoint