我需要为函数创建装饰器,这样如果使用相同的参数连续调用特定函数两次,它将不会运行,而是返回 None 。
被修饰的函数可以有任意数量的参数,但不能有关键字参数。
例如:
@dont_run_twice
def myPrint(*args):
print(*args)
myPrint("Hello")
myPrint("Hello") #won't do anything (only return None)
myPrint("Hello") #still does nothing.
myPrint("Goodbye") #will work
myPrint("Hello") #will work
最佳答案
看看这个简单的方法是否适合您。
prev_arg = ()
def dont_run_twice(myPrint):
def wrapper(*args):
global prev_arg
if (args) == prev_arg:
return None
else:
prev_arg = (args)
return myPrint(*args)
return wrapper
@dont_run_twice
def myPrint(*args):
print(*args)
关于python - 检查函数参数的装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65634297/