Python装饰器:带不同参数的Python装饰器

本文介绍了Python装饰器的应用场景及其实现方法,展示了如何通过装饰器为原有函数添加新功能,同时保持函数调用的简洁性。文章通过实例演示了装饰器如何处理不同数量的输入参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上文:Python装饰器优点和写法

我们的装饰器,肯定会遇见参数,被带不同参数的函数调用装饰器,那么怎么解决这个问题呢?

在装饰器中使用 *args 可变参数的概念

#装饰器编写
def decorator(func):  #传入要在该方法基础上要实现的操作
	def wrapper(*args): #传入一个可变参数的值,满足不同函数的调用
		print(datetime.datetime.now())  #这是新需求要求增加的新要求
		func(*args)  #执行之前的方法
	return wrapper


@decorator    #魅力之处,使用@符号加载装饰器,之后代码直接使用原方法即可,这对在原基础上修改代码非常奏效
def f1():
	print("This is a origin function")

@decorator     
def f2(weather):
	print("This is a origin function2")

@decorator      
def f3(weather,wind):
	print("This is a origin function3")

f1()   #无参数
f2("sun")   #1个参数
f3("rain","no")   #2个参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值