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()
posted @ 2022-05-05 00:39  Yelush  阅读(39)  评论(0编辑  收藏  举报