Python课程设计 第 12 / 52 篇

闭包函数

Chapter07

任务名称 - 闭包函数

任务简介

  1. 理解函数名加括号调用函数的方式,并使用这种方式取代多分枝的if与else组合
  2. 理解名称空间的加载顺序与变量的查找顺序
  3. 理解全局作用域与局部作用域的的概念,学会在局部修改全局变量
  4. 理解闭包函数的思路和装饰器的原理以及实现方式

社群话题

Python装饰器的原理是怎么样的

详细说明

给一个函数传参数,最基本的就是给函数加参数,通过参数来传递,然而当这种方式被否决后,我们还可以通过在函数头部定义变量的方式,这就相当于给函数外部包了一层全局作用域,这就是闭包函数的原理。

打卡要求

  1. 编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件)。要求:登录成功一次,后续的函数都无需再输入用户名和密码;注意:从文件中读出字符串形式的字典,可以用以下方式把字典字符串转化成字符串
eval('{"name":"albert","password":"123"}')
  1. 编写装饰器,为多个函数加上认证功能,要求登录成功一次,在超时时间内无需重复登录,超过了超时时间,则必须重新登录
  2. 编写日志装饰器,实现功能:一旦某函数执行,则将函数执行时间写入到日志文件中,日志文件路径可以指定。
    注意:时间格式的获取
import time

the_time = time.strftime('%Y-%m-%d %X')
print(the_time)