美文网首页
装饰器4

装饰器4

作者: 闲云野鹤_23dd | 来源:发表于2021-01-29 21:30 被阅读0次

    装饰器装饰类

    使用类装饰器的时候,记得要返回被装饰的类调用的结果
    装饰器函数 再 init 之前执行

    例子1:
    给类添加属性

    def warp(obj):
        obj.name = 'python'
        return obj
    
    @warp  # => Bar = warp(Bar)
    class Bar(object):
        def __init__(self):
            pass
    
    print(Bar.name)
    
    a = Bar()
    print(a.name)
    

    例子2:
    初始化创建对象时添加额外操作

    举例: 可以在创建对象时 验证属性数据

    def f1(func):
        def fun(*args, **kwargs):
            print('-----执行装饰器实现的功能-------')
            print(args)
            return func(*args, **kwargs)
    
        return fun
    
    @f1
    class Hero(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
            print('正在初始化')
    
    def move(self):
        print('%s在快速移动' % self.name)
    
    laoli = Hero('大明', 19)
    print(laoli.name)
    
    laoli.move()`
    

    相关文章

      网友评论

          本文标题:装饰器4

          本文链接:https://www.haomeiwen.com/subject/xmtjaktx.html