时间:2023-02-09 13:14:25 | 栏目:Python代码 | 点击:次
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
'''
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
1.函数嵌套
2.内部函数使用外部函数的变量或参数
3.外部函数返回了内部函数
'''
# 定义一个闭包
def outer(): # 外部函数
n=1
def inner(): # 内部函数
print(n)
# 外函数返回内函数的引用(不用带括号哈)
return inner
outer() # 调用外函数不会执行内函数
# inner() # 不能直接调用内函数
ret=outer() # 把内函数的引用给ret
print(ret)
ret()
# 闭包的使用
def person(name):
def say(msg):
print(f'{name} say: {msg}')
return say
tom=person('Tom')
rose=person('Rose')
tom('Hello')
rose('World')
def outer(): n=1 def inner(): nonlocal n # 不加会报错,列表、字典、元祖不用加 n=n+10 print(n) print(n) # 输出1 return inner fun=outer() fun() # 输出11 fun() # 输出21