-
定义
闭包:将一个函数嵌套在另一个函数中时,外层函数返回值为内层函数,且内层函数使用了外层函数的变量时,就产生了闭包
优点:实现了局部函数,且局部函数可以多次调用;可以对函数内的 局部变量进行调用,即内层函数可以调用外层函数的变量
缺点:当不进行隔离时,即内层函数调用了外层函数的变量时,外层函数在结束后不会回收其变量,浪费了内存
-
【闭包】:实现局部函数的多次调用
def get_password(): password=input('input password') def encode_password(secret=4): for i in range(secret): res=str(i).join(password) return res return encode_password #【测试1】 fc=get_password() # 输入 admin 一次 r=fc() print(r) # 输出 a3d3m3i3n3 r=fc() print(r) # 输出 a3d3m3i3n3 #【测试2】 fc=get_password() # 输入 admin 一次 r=fc(5) print(r) # 输出 a4d4m4i4n fc=get_password() # 输入 wqqw 一次 r=fc(6) print(r) # 输出 w5q5q5w
-
【闭包缺点】
外部函数局部变量若在内部函数里使用时,则在调用完外部函数后不会回收局部变量
即,上例password不会回收
当发现内部函数中不使用时,则会回收password(学会隔离)def get_password(): password=input('input password') def encode_password(secret=4,pa=password): for i in range(secret): res=str(i).join(pa) return res return encode_password
Python-16-函数嵌套_闭包
最新推荐文章于 2022-02-08 13:39:39 发布