Python学习笔记day18:有参装饰器、迭代器、生成器

一、装饰器补充

1、偷梁换柱

	即将原函数名指向的内存地址偷梁换柱成wrapper的内存地址所以应该将wrapper做的跟原函数一样才行参数层面上接受的参数和原函数一样
   		wrapper(*args,**kwargs)
 	返回值层面上返回的参数和原函数也一样
        res = func(*args,**kwargs)#参数要写活
    	return res

2、上一节所写装饰器存在的问题

def outter(func):
	def wrapper(*args,**kwargs):  #wrapper内需要func
   	 #1、调用原函数
   	 #2、增加新功能
    	res = func(*args,**kwargs)#参数要写活
    	return res
	return wrapper
@outter
def index(x,y):
	"""打印坐标"""
	print(x,y)

print(index)  #将打印wrapper函数的内存地址,而不是原函数的内存地址	
print(index.__name__) #将打印的是wrapper,而不是原函数
print(help(index)) #将返回wrapper的文档注释:None,而不是原函数的文档注释
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值