python查漏补缺之闭包、装饰器、静态方法
闭包
定义:在函数内部定义一个函数,这个内部函数使用了外部函数的临时变量,且外部函数的返回值是内部函数的引用。
作用:
- 获取函数内部的变量
- 保持变量的值在内存中
- 避免变量名重复
应用场景:装饰器中
结构如下:
def func1(): n=0 def func2(): print(n) return func2 res = func1() res()
装饰器
定义:python的装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。简单的说装饰器就是一个用来返回函数的函数
作用:应用在插入日志、性能测试、事务处理、缓存、权限校验等场景
结构:
def func1(func): n=0 def func2(): func() print(n) return func2 @func1 def test(): print(1) if __name__ == "__main__": test()
静态方法
定义:@staticmethod方法用于修饰类中的方法,使其可以在不创建类实例的情况下调用方法,其应用形式如下:
class TestCase: def __init__(self, num): self.num = num; def count(self): print(self.num) @staticmethod def print_info(): print("Test case") if __name__ == "__main__": tc = TestCase(0) # 实例化成员方法 tc.count() # 此时可直接访问静态方法 TestCase.print_info() # 实例化访问静态方法 tc.print_info()