首页 > 编程语言 > 详细

python面向对象--类的装饰器

时间:2019-09-05 13:09:06      阅读:88      评论:0      收藏:0      [点我收藏+]
# def deco(obj):
#     print("=====",obj)
#     obj.x=1
#     return obj

# @deco#===> test = deco(test)----->return func
# def test():
#     print("test函数运行")
#
# test()




def deco(obj):
    print("=====",obj)
    obj.x=1
    obj.y=2
    return obj

@deco # Foo = deco(Foo)
class Foo():
    pass


print(Foo.__dict__)


#一切皆对象
def test():
    print("test")
test.x=1
print(test.__dict__)



def typed(**kwargs):

    def deco(obj):
        print("======>",kwargs)
        print("=====>类名",obj)
        for key,val in kwargs.items():
            # obj.key=val
            setattr(obj,key,val)
        return obj
    print("===>",kwargs)
    return deco

@typed(x=1,y=2,z=3)#1.typed(x=1,y=2,z=3)--->deco  2.@deco---->foo=deco(foo)
class Foo:
    pass

print(Foo.__dict__)


@typed(name="egon")# @deco===>Bar=deco(Bar)
class Bar:
    pass

print(Bar.name)

  

python面向对象--类的装饰器

原文:https://www.cnblogs.com/tangcode/p/11464642.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!