类是一个对象也可以像函数一样加装饰器
类的装饰器.py
def deco(obj): print(‘======‘,obj) obj.x=1 obj.y=2 obj.z=3 return obj # @deco #test=deco(test) # def test(): # print(‘test函数运行‘)
#运行了装饰器所以打印了装饰器里面的print内容 @deco #Foo=deco(Foo)
#====== class Foo: pass
#打印类的字典,其中xyz属性是在装饰器函数里面定义的 print(Foo.__dict__) #{‘__doc__‘: None, ‘z‘: 3, ‘y‘: 2, ‘__dict__‘: <attribute ‘__dict__‘ of ‘Foo‘ objects>, ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘Foo‘ objects>, ‘x‘: 1, ‘__module__‘: ‘__main__‘}
本装饰器就是把类作为实参传递给函数deco然后把返回值赋值给Foo,在装饰器函数里面可以定义对应类的属性