Python装饰器

装饰器

闭包

在计算机科学中,闭包(closure),又称词法闭包(lexical clourse)或者函数闭包,是引用了自有变量的函数。这个引用的自由变量的函数和这个函数一同存在,即使已经离开了创造他的环境也不例外。
闭包就是引用了自有变量(非局部变量)的函数,这个函数保存了执行的上下文,可以脱离原本的作用域独立存在。
def printMSG():
msg = “MSG”

	#printer 函数就为一个闭包,引用了自有变量msg,保存了上下文msg
	def printer():
		print(msg)
		msg="New MSG"

	return printer

#获得一个闭包
clousre = printMSG()
clourse()

装饰器

@符号:只是将函数传入装饰器的函数,并无神奇之处。
@functools.warps(func),这是python的装饰器,它能将原函数的元信息拷贝靠装饰器里面func函数中,包括docstring、name、参数列表等。
功能:修改其他函数的功能

带参数的装饰器

装饰器允许传入参数,一个携带参数的装饰器将有三层函数。
原理就是套一层函数调用,在原有闭包的前提下,再加一层调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值