Python基础 ( 十 ) —— 面向对象补充2

类的装饰器

还记得以前的函数的装饰器吗?是不是基本结构是这样的:

def deco(fun):
    print('*'*50)
return fun @deco
#相当于做了:Foo=deco(Foo) def Foo(): pass

那么类的装饰器又是怎么样的呢?其实和函数的装饰器原理一样。

因为函数和类,本质上都是一个类

def deco(obj):
    print('*'*50)
    obj.x = 1
    obj.y = 2
    return obj
@deco               #相当于做了:Foo=deco(Foo)
class Foo:
    pass
print(Foo.x)        #这样就简单的对Foo类进行了装饰

猜你喜欢

转载自www.cnblogs.com/Matrixssy/p/11698632.html
今日推荐