def multi_100(func):
def demo(ls):
# 这个函数是让列表前两个元素*100
for i in range(2):
ls[i] = (ls[i] * 100)
func(ls)
return ls
return demo
def divide_100(func2):
def demo(ls):
for i in range(2, 4):
ls[i] = ls[i]/100
func2(ls)
return demo
@divide_100 # 先执行第一个装饰器,再执行第二个装饰器
@multi_100
def change1(ls):
ls[0], ls[1] = ls[1], ls[0]
print(ls)
if __name__ == '__main__':
# 现在我有一个列表【1,2,300,400】我定义了一个函数change1,用来交换列表前两个元素的位置
ls1 = [1,2,300,400]
# 但是现在新增一个需求,在交换位置之前先*100,并且不能改变change1这个函数
change1(ls1)
# 现在又增加一个需求后两个元素要除以50之后,前两个元素*100之后,再换位置
简单了解,后续深入了解再发