python 装饰器 第四步:基本装饰器的实现

#第四步:基本装饰器的实现
#用于扩展基本函数的函数
def kuozhan(func):
    #内部函数(扩展之后的eat函数)
    def neweat():
        #以下三步就是扩展之后的功能,于是我们把这三个哥们做成一个函数
        #取名叫做neweat
        #扩展功能1
        print('饭前要洗手')
        #调用基本函数
        func()
        #扩展功能2
        print('饭后溜一圈')
    #这里需要有返回值才能传给eat
    #添加返回值
    #return 12  eat原来是函数,eat扩展之后还以函数的形式赋值给eat
    #所以return后面必须是扩展之后的函数
    return neweat
#基本函数
@kuozhan#eat = kuozhan(eat) #eat就相当于以前的result,用来接收返回值
def eat():
    print('吃饭')
#扩展之后的函数要重新赋值给基本函数!(但是此步骤还实现不了)
#eat = kuozhan(eat) #eat就相当于以前的result,用来接收返回值
print(eat)#第四步的目的是为了让打印eat函数的时候打印一个函数
#而不是像第二步和第三步打印回来的是None
#调用函数
eat()#eat就是扩展的内部函数neweat函数,就是return返回的值

 

posted @ 2017-12-10 22:55  Bob__Zhang  阅读(268)  评论(0编辑  收藏  举报