类装饰器

类装饰器

_call__ 方法的使用

一个类里面一旦实现了__call__ 方法,那么这个类创建的对象就是一个可调用对象,可以像调用函数一样进行调用

示例:

# 定义一个类,实现__call__方法
class Check(object):
    def __call__(self, *args, **kwargs):
        print('我是call方法')

c = Check()
c() # 像函数一样去调用对象,前提是该类要实现__call__方法

类装饰器(较少使用)

# 定义类装饰器
class Check(object):
    def __init__(self, fn):
        self.__fn = fn

    def __call__(self, *args, **kwargs):
        print('登录')
        self.__fn()

# 被装饰的函数
@Check # comment = Check(comment)
def comment():
    print('发表评论...')

comment()