类装饰器
类装饰器
_call__
方法的使用
一个类里面一旦实现了__call__
方法,那么这个类创建的对象就是一个可调用对象,可以像调用函数一样进行调用
示例:
# 定义一个类,实现__call__方法
class Check(object):
def __call__(self, *args, **kwargs):
print('我是call方法')
c = Check()
c() # 像函数一样去调用对象,前提是该类要实现__call__方法
类装饰器(较少使用)
- 要让类的实例对象能够像函数一样进行调用,需要在类里面使用call方法,把类的实例编程可调用对象
- 类装饰器装饰函数功能在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()