函数闭包-python

闭包

条件:
1.外部函数定义了内部函数
2.外部函数有返回值
3.内部函数用了外部函数的变量
4.返回的值是内部函数名
格式:

def 外部函数():
	...
	def 内部函数():
		.....
	return 内部函数
....

在这里插入图片描述

def func(a,b):
    c=10
    def inerfunc():
        s=a+b+c
        print("相加后的结果:",s)
    return inerfunc  #这里千万不要加括号,返回函数名
ifunc=func(6,9)  #ifunc==inerfunc
ifunc1=func(2,8)
ifunc1()
ifunc()

根据上面的代码可知,ifunc和ifunc1分别占一块独立的空间。

闭包的同级访问

def func():
    a=100
    def innerfunc1():
        b=90
        s=a+b
        print(s)
    def innerfunc2():
        innerfunc1()  #同级函数调用
        print("------->inner_func2")
        return 'Hello'
    return innerfunc2
f=func() #调用func()返回的是函数名innerfunc2
ff=f()  #f()->调用函数innerfunc2,因为有返回值,所以用ff接受才能打印出
print(ff)

闭包的实例

#计数器
def generate_count():
    a=[0]
    def add_one():
        a[0]+=1
        print("第{}几次调用".format(a[0]))
    return add_one
counter=generate_count()
counter()
counter()

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值