Python闭包
程序员班长 人气:01.闭包的定义和使用
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性
实现闭包的标准格式:
- 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
加载全部内容