1.__call__魔法方法的使用
如果一个类中,一旦实现了__call__魔法方法之后,那么这个类创建的对象就是一个可调用的对象,可以像调用函数一样去调用,调用的时候默认使用__call__魔法方法 。
class Check(object):
def __init__(self):
self.name = "hi!"
def info(self):
print(self.name)
def __call__(self, *args, **kwargs):
print("这是__call__魔法方法!")
c=Check()
c() # 实例对象不能直接调用
想要类的实例对象可以像函数一样进行调用,需要在类里面使用__call__方法,把类的实例变成可调用的对象
类装饰器装饰函数功能在__call__方法里添加
class check(object):
def __init__(self, fn):
self.fn = fn
def __call__(self, *args, **kwargs):
print("登录验证:")
self.fn() # comment()
@check # comment=check(comment)
def comment():
print("正在说话!")
comment()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)