6-26 python- 闭包 探索

2021年 6月26日

闭包
在这里插入图片描述

# coding=utf-8


#闭包的使用条件:
# 1.函数嵌套
# 2.内部函数使用了外部函数的变量或者参数
# 3.外部函数要返回内部函数,这个使用了外部函数变量的内部函数称为闭包


#闭包的使用条件:
# 函数嵌套
def func_out():
    num1 =10

    def func_inner():
        #内部函数
# 2.内部函数使用了外部函数的变量或者参数
        result = num1 + 10

        print("结果:",result)
# 3.外部函数要返回内部函数,这个使用了外部函数变量的内部函数称为闭包
    return func_inner

# 获取闭包对象
#这个new_func就是闭包

#
new_func = func_out()
#执行闭包
new_func()

结果:20

闭包函数增加参数

# 函数嵌套
def func_out():
    num1 =10

    def func_inner(num2):
        #内部函数
# 2.内部函数使用了外部函数的变量或者参数
        result = num1 + num2

        print("结果:",result)
# 3.外部函数要返回内部函数,这个使用了外部函数变量的内部函数称为闭包
    return func_inner

# 获取闭包对象
#这个new_func就是闭包

#
new_func = func_out()
#执行闭包
#new_func()
new_func(1)
new_func(10)
结果: 11
结果: 20

在这里插入图片描述

在这里插入图片描述

二.闭包的使用
在这里插入图片描述

在这里插入图片描述

##encoding=utf8
def  config_name(name):
    
    def inner(msg):
        print(name + ":" + msg)
    print(id(inner))
    
    return inner
# 创建 tom 闭包 实例(对象)
tom = config_name("tom")
#创建jerry闭包实例:
jerry = config_name("jerry")
#如果执行tom闭包因为已经保存了name参数那么以后在输入的时候都是tom:XXX

tom("郭同学,过来下,我们一起玩耍!")
jerry("打死都不去")
tom("我不吃你")
jerry("谁相信你")
1642755283264
1642755282256
tom:郭同学,过来下,我们一起玩耍!
jerry:打死都不去
tom:我不吃你
jerry:谁相信你

在这里插入图片描述

#1.函数嵌套:
def func_out():
    #外部函数变量
    num1 = 10
    
    def func_inner():
        nonlocal num1
        num1 = 20
        result = num1 + 10
        print(result)
        
    print("修改前的外部变量:",num1)
    
    func_inner()
    
    print("修改后的外部变量:",num1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值