类的装饰器
# def deco(obj): # print('======') # return obj # @deco # def test(): # print('运行') # test() def deco(obj): print('======') obj.z=1 obj.x=5 obj.c=3 return obj @deco#FOO=deco(Foo) class Foo: pass p1=Foo() print(p1.__dict__)
%%%%
def Typed(**kwargs): def deco(obj): for key,val in kwargs.items(): setattr(obj,key,val) return obj return deco @Typed(X=1,Y=2,Z=4)#1.typed(x=1,y=2.z=4)---->deco 2.@deco--->Foo=deco(Foo) ### class Foo: pass print(Foo.__dict__) @Typed(name='kdsh') class Bar: pass print(Bar.name)

浙公网安备 33010602011771号