Python:decorator学习

  1. 修饰器/装饰器:学习链接:Python之修饰器 - 知乎
  2. 下面是我自己的学习笔记:装饰器就是Decorator,假设有这样的场景,对于以前那些不够完善的函数,我们想对这些函数进行改造、增加一些功能,在没有装饰器的情况下,我们要对这些函数一个一个进行修改,修改完成以后再在主程序中每一个用到这些函数的地方,都将函数进行升级。如图一所示。如果这些函数的数量很多且在主程序中被调用了很多次,那么改造函数和升级函数的工作量就很大,还有可能出现错漏。如果有了装饰器,那么我们就可以写出装饰器的代码,然后在每一个函数声明前写上@装饰器函数名,函数加上了装饰器以后,在主程序中这些函数就会自动升级,不需要修改就可以自动升级,减少了工作量且也不会出现升级错漏的情况。
  3. 图一:代码转载于:Python之修饰器 - 知乎
    def hi():
        """hi func,假装是很复杂的函数"""
        return 'hi'
    
    def aop(func):
        """aop func"""
        print('before func')
        print(func())
        print('after func')
        
    if __name__ == '__main__':
        aop(hi)

  4. 图二:代码转载于:Python之修饰器 - 知乎
    def aop(func):
        """aop func"""
        def wrapper():
            """wrapper func"""
            print('before func')
            func()
            print('after func')
        return wrapper
    
    @aop
    def hi():
        """hi func"""
        print('hi')
        
    @aop
    def hello():
        """hello func"""
        print('hello')
    
    if __name__ == '__main__':
        hi()
        hello()
  5. 这个就是主程序的入口,对大程序很重要!先记住

    if __name__ == '__main__':
    
  6. Python的函数,可以传函数名字当函数的参数,用专业术语就是:Python的函数可以传函数引用当参数。函数引用就是指函数名字。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值