1.闭包的定义和使用
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
1.函数嵌套 2.内部函数使用外部函数的变量或参数 3.外部函数返回了内部函数'''
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
? ? 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')
2.闭包内函数修改外函数定义的变量(加nonlocal)
def outer(): ? ? n=1 ? ? def inner(): ? ? ? ? nonlocal n ?# 不加会报错,列表、字典、元祖不用加 ? ? ? ? n=n+10 ? ? ? ? print(n) ? ? print(n) ? ?# 输出1 ? ? return inner ? fun=outer() fun() ? # 输出11 fun() ? # 输出21
到此这篇关于Python闭包的使用方法的文章就介绍到这了,更多相关Python闭包 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did92947