python进阶之——闭包

闭包就是指: 在函数内部在定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包。
在这里插入图片描述

def test (number):
	print("----1----")
	def test_in(number2):
		print("----2------")
		print(number+number2)
		
	print("---3----")
	return test_in
	
ret=test(100)
print('-'*30)
ret(1)
ret(100)
ret(200)

上面的这段代码就是闭包的应用。
输出:

------1------
------3------
----------------------------------
------2-----
101
------2-----
200
------2-----
300

程序解析:在执行ret=test(100),输出了1和3可以看出,在调用闭包的外部函数时,程序并不会执行闭包内的函数,原因是test函数的返回值是test_in函数,所以他只是把test_in的函数体当成一个数据整体作为test函数的返回并赋值给ret变量,所以接下来我们操作ret变量可以将它看成test_in函数来操作。这里可以看出,闭包最大的作用就是当我们将函数用闭包的形式进行封装,以后我们对该函数的操作他都是在基础操作之上的进一步操作,比如这里的初始给number=100,之后对闭包函数的任何操作都会在这个100的基础上来进行。闭包函数对外部函数的变量的使用是一直持续的。

闭包的应用例子

问题:实现一次函数,可以通过x求任意y的值

def line_conf(a,b):
	def line(x):
		return a*x+b
	return line
line1=line_conf(5,4)
line2=line_conf(3,4)
line1(2)
line2(3)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值