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('qikepu')
print(obj.print_name())

此处,Wrapped 是要包装的类的名称。它作为参数传递给函数。在函数内部,我们有一个 Wrapper 类,使用传递的类的属性修改其行为,并返回修改后的类。返回的类已实例化,现在可以调用其方法

当您执行此代码时,它将生成以下输出 -

qikepu