Python中的class修飾器是一種裝飾器(decorator), 能夠在定義和實例化類時動態地修改類的屬性和方法。
下面是一個例子,定義了一個class修飾器my_decorator,它將類的__init__方法中的參數名全部轉為小寫:
def my_decorator(cls): orig_init = cls.__init__ def new_init(self, *args, **kwargs): lowercase_kwargs = {k.lower(): v for k, v in kwargs.items()} orig_init(self, *args, **lowercase_kwargs) cls.__init__ = new_init return cls
使用class修飾器時,只需要在類定義之前加上@my_decorator即可:
@my_decorator class MyClass: def __init__(self, Name): self.name = Name
在實例化MyClass時,參數名會被轉化成小寫:
obj = MyClass(name="John") print(obj.name) # 'John' print(obj.Name) # AttributeError: 'MyClass' object has no attribute 'Name'
通過class修飾器,我們可以方便地修改類的屬性和方法,實現各種有趣的功能。
下一篇vue內嵌網頁鏈接