Python闭包的使用方法

1.闭包的定义和使用
当返回的内部函数使用了外部函数的变量就形成了闭包
闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性

实现闭包的标准格式:

1.函数嵌套
2.内部函数使用外部函数的变量或参数
3.外部函数返回了内部函数
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

'''

当返回的内部函数使用了外部函数的变量就形成了闭包

闭包可以对外部函数的变量进行保存,还可以提高代码的可重用性

实现闭包的标准格式:

    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)
1

2

3

4

5

6

7

8

9

10

11

12

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闭包的使用方法的文章就介绍到这了,希望可以对你有所帮助。
————————————————

来源:https://www.weidianyuedu.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值