python decorator 应用

爬虫有这样的需求,一个请求失败后,希望重发两次,可以利用装饰器实现

 

 

import functools

def retry(time):
	def decorator(func):
		@functools.wraps(func)
		def wrapper(*args, **kwargs):
			for i in range(3):
				try:
					func(*args, **kwargs)
					break
				except:
					print(i + 1)
		return wrapper
	return decorator


@retry(3)
def fun():
	print(1 / 0)

fun()

 

当一个函数抛出异常时,重试两次

你可能感兴趣的:(python)