• python 装饰器 第九步:使用类来作为装饰器


    #第九步:使用类来作为装饰器
    class kuozhan:
        #接收装饰器的参数(函数outer)
        def __init__(self,arg):
            print(self,arg)#arg就是la
            self.arg = arg
        #制作一个内部函数(真正的装饰器  函数kuozhan)
        def __call__(self,func):
            print(self,func)#func就是eat函数
            #将func函数存入对象
            self.func = func
            return self.neweat
        #在面向对象过程当中不提倡内使用内部函数,要提到前面
        #定义称为一个成员方法
        def neweat(self):
            # 扩展功能1
            print('饭前洗洗手')
            # 调用基本函数
            self.func()
            # 扩展功能2
            print('饭后溜溜腿')
    #基本函数
    @kuozhan('la')# 相当于 result = kuozhan("la"), eat = result(eat) reuslt是实例对象 被当做函数调用触发__call__函数
    def eat():
        print('吃饭')
    #调用函数 eat在某种程度上算是kuozhan类的实例对象 把它当函数调用触发 call 魔术方法
    print(eat)
    eat()
  • 相关阅读:
    Kafka Eagle安装
    CentOS下OpenJDK设置JAVA_HOME
    设计模式:解释器模式
    Typora主题推荐
    SpringMVC的<mvc:annotation-driven />
    SpringMVC的视图解析器
    数字化营销
    《计算广告》第二版思维导图
    舆情计算
    实时数仓
  • 原文地址:https://www.cnblogs.com/zhangboblogs/p/8018720.html
Copyright © 2020-2023  润新知