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