All is well 3 idiots

AC小小常

【Python面向对象】(9) 装饰器之类装饰器

类的上方装饰方法,那么该方法会成为该类的方法,可以通过实例调用

"""
类的装饰器
"""


def f(self):
    print("{}要吃东西".format(self.name))
    print("0000000")


def eat(cls):
    """ 吃东西装饰器 """
    # cls.eat = lambda self: print("{}要吃东西".format(self.name))
    cls.eat = f
    return cls


@eat
class Cat(object):
    """ 猫类 """
    def __init__(self, name):
        self.name = name


if __name__ == "__main__":
    cat = Cat("小黑")
    cat.eat()
    # 输出:
    # 小黑要吃东西
    # 0000000

 

posted on 2020-04-15 19:13  AC小小常  阅读(112)  评论(0编辑  收藏  举报

导航