2020.6.19 longging

发布于 14 天前  18 次阅读


1.复习内容

2.灵感代办

3.学习内容

  • 闭包的形成条件

    • 1.有函数嵌套
    • 2.内部函数使用外部函数变量(参数也是变量)
    • 3.外部函数返回内部函数
    • 内部函数修改外部函数变量,需要使用nonlocal
    • 闭包不释放,闭包的变量就不释放()
  • 装饰器(本质上就是一个闭包)

    • 作用:
      • 不更改代码,对已有函数进行扩展
    • 装饰器的特点:
      • 不修改已有函数源码,调用方法,但可以添加额外功能
    • 和闭包区分
      • 只有一个参数,这个参数是一个函数,这个函数就是闭包
    • 装饰器的语法糖
      • 语法糖:写起来更简洁
      • @装饰器 来修饰函数
        • 函数名 = 装饰器(函数名)
    • 装饰器执行
      • 当前模块加载完成,装饰器就开始执行
    • 通用装饰器
      • 1.函数需要传递参数 *args 和 **kwages
      • 2.装饰器需要参数
    • 多个装饰器装饰
      • 由内到外的装饰过程
      • 先执行靠近函数的装饰器,依次向外执行
    • 带参数的装饰器
      • 1.不能违背参数只能有一个参数(所以要要在包一层函数)
      • 2.最外部函数接收一个参数,中层函数接收函数,内存函数接收函数的参数
      • 带参数的就相当于定义一个函数,接收参数,函数内部是一个装饰器,返回这个装饰器,还相当于@装饰器
    • 类装饰器(用类来修饰函数)
      • @类装饰器,其实是调用了init方法,所以需要接收参数
      • 需要实现call方法,call方法可以让对象被()调用
    • 空元组*args和空**kwargs传递参数
      • 拆包时候就相当于没有
  • 上下文管理器

    • 类需要实现 enter 和 exit 方法
    • 装饰器实现
      • from contextlib import contextmanager
      • @contextmanager来装饰函数
      • from contextlib import contextmanager
        @contextmanager
        def my_open(path,mode):
          try:
            file = open(file_name,mode)
            yield file
          except:
            print("")
         finally:
          print("over")
          file.close()

  • mini-Web框架
    • web框架服务于web服务器,处理动态资源请求
    • WSGI 协议
      • web服务器和web框架协同工作的一个规则
      • 规定了动态资源协议给谁
    • HTTP传输的数据
      • 请求
        *
      • 响应
        • 1
    • 路由列表
  • logging 日志

    • logging日志介绍
      • 记录日志非常重要
      • 可以方便了解程序运行情况
      • 可以分析用户操作行为,喜好
      • 方便开发人员修复bug
    • logging日志级别介绍(从低到高)
      • Debug
        • 调试程序的时候使用
      • Info
        • 用户正常使用的时候
      • Warring(默认级别)
        • 不按照程序预定执行:输错密码,
      • error
        • 程序出现错误,文件打不开
      • critical
        • 导致程序无法使用,磁盘空间
    • 使用logging日志
      • 设置日志级别等级
      • logging.basicConfig(level=logging.DEBUG) 函数里面有提示
        • level 日志的默认级别
        • format 可以指定一定的格式
          • “%(asctime)s-%(filename)s[lineno:%(linenod)]-%(levelname)s-%(message)s”
        • filename可以存放到文件中
          • filename=“log.txt”
        • filemode 日志的格式
          • filemode=‘w’
      • import logging
      • logging.debug(‘’) /info /warring /error critical

4.扩展延伸知识

  • python函数定义顺序

5.知识内容个人梳理

6.今天都复习了之前的什么内容


Ares个人进阶之路