20181210 经过学习后,再记录一下装饰器的运行流程

装饰器,我现在的理解就是:如果你有个A函数,觉得功能不够,就可以在A函数上面@B函数,这样实际就形成了一个B+A的函数(其中包裹了A函数的代码),就这么简单。如果你还觉得不够,就在@B上面在@C,形成一个C+(B+A)的函数(其中包裹了B+A的代码)。
如下面的例子:

	def wrapper(func):
        def inner(*args, **kwargs):
            print("在前面执行的代码。。。。")
            func()
            print("在后面执行的代码...")		# 如果不需要执行后面的代码,也可以直接return func()
        return inner
     # 执行完wrapper后,其实代码并没有执行,只是生成了inner,里面是包裹后的函数代码
     # return inner后,f()才实际在执行这个包裹后的函数代码
    @wrapper		# 这个是装饰器函数
    def f():
        """
        这是一个用来测试装饰器修复技术的函数
        """
        print("哈哈哈")
       
    if __name__ == '__main__':
        f()	
        # 其实上面的 f()实际变成了以下代码 
       	# 	print("在前面执行的代码。。。。")
       	#    """
        #	这是一个用来测试装饰器修复技术的函数
        #	"""
        #	print("哈哈哈")
        # 	print("在后面执行的代码...")
      
    #返回结果:
	在前面执行的代码。。。。
	哈哈哈
	在后面执行的代码...
	```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值