'''类的装饰器基本原理''' # def deco(func): # print('===') # return func # @deco # test = deco(test) # def test(): # print('test函数运行') # # test() # @deco # Foo = deco(Foo) # class Foo: # pass # # f1 = Foo() # def deco1(func): # func.x = 1 # func.y = 2 # return func # # @deco1 # Foo1 = deco1(Foo1) # class Foo1: # pass # # print(Foo1.__dict__) '''类的装饰器增强版''' # def typed(**kwargs): # def deco(func): # 此时deco是局部作用域 # for key,val in kwargs.items(): # setattr(func, key, val) # 为类设置类属性 # return func # return deco # # @typed(name='alex', age=18) # ①typed(name='alex', age=18)已经是在运行了,返回结果deco ②@deco,Foo = deco(Foo) # class Foo: # pass # # @typed(x=1, y=2, z=3) # class Bar: # pass # # print(Foo.__dict__) # print(Bar.__dict__)