闭包;
1.函数的再认识:
函数名仅仅是一个变量,只不过指向的是定义的函数体,通过函数名()可以调用该函数
如果函数名=xxx被修改了,那么再次执行函数名()时,调用的就不是之前的函数了
小结:
1.函数名也是变量
2.可以把函数名当做参数来使用
2.闭包的结构;
1.外部函数;外部函数返回内部函数的地址空间引用
2.内部函数:内部函数使用了外部函数的参数值或着变量
把这种结构的整体称为闭包
3.闭包与普通函数的区别:
1.普通函数能保存功能,但是不能保存传送给函数的数据,比如执行函数foo(100)后,10这个值就没有办法保存到内存中了
2.闭包能保存功能,也可以保存传递过来的数据,比如执行函数foo(100)后,还可以保存这个数据
参考代码:
"""闭包"""
def task(num):
print("外部函数的变量:",num)
def func():
print("内部函数使用外部函数的变量或参数",num)
return func
f = task(200)#返回值是func,即内部函数的定义空间的引用
f()
"""闭包与普通函数的区别"""
def task(num):
print("普通函数",num)
task(200)
task(200)
f()
4.使用闭包实现对函数功能的扩展
1.代码编写的开放封闭原则
封闭:已经实现的功能代码块不能在被修改
开放:对扩展的开放,可以扩展新的功能
2.使用闭包实现对函数功能的扩展
#使用闭包实现对函数功能的扩展#
# """扩展功能"""
# def func(test):
# def func1():
# print("我是扩展功能")
# test()
# return func1
# """基础函数"""
# def task1():
# print("基础功能")
# def task2():
# print("基础功能")
#
# f1 = func(task1)
# f1()
# f2 =func(task2)
# f2()
python中 闭包 的使用
最新推荐文章于 2020-12-05 19:53:46 发布