8. 装饰类的装饰器
装饰器的实质
替换被装饰函数(或类)的变量,让他重绑定一个函数(或者类)。
用装饰器可以装饰类型:
- 函数
- 类
- 方法
Python的类名也是变量,也可是使用装饰器来替换。
装饰类的装饰器语法
@装饰器n <换行>
...
@装饰器2 <换行>
@装饰器1 <换行>
class 类名:
语句块
示例
# 装饰类的装饰器 示例
def replace_animal(fn):
class Cat:
def speak(self):
print('喵')
return Cat
@replace_animal
class Dog:
def speak(self):
print('旺')
dog = Dog()
dog.speak()
上述装饰器将 Dog 变量重新绑定成了 class Cat
。