函数名用途,初始装饰器
函数名的使用, 第一类对象
单独的函数名 函数这个整体,加括号代表调用函数,会有返回值,单独使用func(),
1. 函数名可以像变量一样进行赋值操作
a=fun
2. 函数可以作为容器(list, tuple, dict)的元素, 保存在容器内
[fun](fun(),)
3. 函数可以作为返回值返回
4. 函数可以作为参数进行传递
2. 闭包
目的: 让内存永远的记住一个变量
在内层函数中访问外层函数的局部变量. 叫闭包. 这个时候. 外层的这个局部变量将会常驻内存
def func():
# a = 10
# def inner():
# print(a)
# return inner
#
# fn = func()
# fn()
可以一直保持局部变量常驻内存
fn.__closure__检查闭包语法
3. 装饰器(初识)
开闭原则(开放封闭原则): 对添加功能开放. 对修改代码封闭.
语法糖:
@装饰器名字
总结:
def wrapper(fn):
def inner(*args, **kwargs):
'''目标函数之前你要做什么'''
ret = fn(*args, **kwargs)
'''目标函数之后你要做什么'''
return ret
return inner
@wrapper
def target():