类装饰器

来源:互联网 发布:东莞金拓软件 编辑:程序博客网 时间:2024/06/06 04:53
# decorator_object 1、 初始化时接收 被修饰函数(callbale类), 然后将将要修饰的函数放在类的__call__方法中, # 这样其自身也成为一个callable_objectclass Test(object):    def __init__(self, func):        self.__func = func        self.name = None    def __call__(self, name):        self.name = name        if self._check():            print('欢迎进入!')            self.__func()        else:            print('Have no access')    def _check(self):        if self.name == 'ff':            return True        else:            print('wrong name')@Testdef test():    print(sum(range(100)))# 代码运行到第20行, 将Test实例化,test指向此实例对象, 此实例对象的func属性指向原test函数, # ()运行就执行test指向的实例对象的__call__方法test('fx')test('ff')

运行结果:

wrong nameHave no access欢迎进入!4950
原创粉丝点击