Python中的闭包

学习装饰器的时候提到了闭包的概念,沉淀下所学
闭包即内部函数使用了外部函数中的变量,
这里有几个需要重点理解的:
①首先至少是有两级函数嵌套;
②是外部函数中声明的,即若在内部函数中声明了同名的局部变量也是不在该范围的;
③一定是变量(不是数值相同的常量);
举个例子:

1、 使用了外部函数的变量

def outer_fun():
		a=1
			def inner_fun():  ---属于闭包函数
				print (a+1)
			return inner_fun

2、 使用了同名的内部函数的变量

def outer_fun():
		a=1
			def inner_fun():  ---不属于闭包函数
				a=2
				print (a+1)
			return inner_fun

3、使用了相同值的常量

def outer_fun():
		a=1
			def inner_fun():  ---不属于闭包函数
				print (1)
			return inner_fun

以上纯属个人学习笔记,如有不足还望指摘,不吝赐教。

二、装饰器的固定格式

def 装饰器的名字(func):
	def inner(*args,**kwargs):
		'''在执行要被装饰的函数之前要做的事儿...'''
		'''比如判断登录'''
		ret=func(*args,**kwargs)
		'''在执行被装饰的函数之后要做的事儿...'''
		'''比如写log'''
		return ret
	return inner
@装饰器的名字
def fun():
	pass
	

浅浅了解*args与**kwargs

args:将多个实参放入一个元组中,可以传多个参数,按照位置传参,多余的按照list的形式写入args中,比如:a,*args,c=1,2,3,4,5,6,4,3,9,则a=1,*args=[2,3,4,5,6,4,3],c=9

**kwargs:按照关键字传值,将多余的值以字典的形式传递

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值