- 修饰器/装饰器:学习链接:Python之修饰器 - 知乎。
- 下面是我自己的学习笔记:装饰器就是Decorator,假设有这样的场景,对于以前那些不够完善的函数,我们想对这些函数进行改造、增加一些功能,在没有装饰器的情况下,我们要对这些函数一个一个进行修改,修改完成以后再在主程序中每一个用到这些函数的地方,都将函数进行升级。如图一所示。如果这些函数的数量很多且在主程序中被调用了很多次,那么改造函数和升级函数的工作量就很大,还有可能出现错漏。如果有了装饰器,那么我们就可以写出装饰器的代码,然后在每一个函数声明前写上@装饰器函数名,函数加上了装饰器以后,在主程序中这些函数就会自动升级,不需要修改就可以自动升级,减少了工作量且也不会出现升级错漏的情况。
- 图一:代码转载于: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)
- 图二:代码转载于: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()
-
这个就是主程序的入口,对大程序很重要!先记住
if __name__ == '__main__':
- Python的函数,可以传函数名字当函数的参数,用专业术语就是:Python的函数可以传函数引用当参数。函数引用就是指函数名字。