上一篇文章将通过解决一个需求问题来了解了闭包,本文也将一样,通过慢慢演变一个需求,一步一步来了解 Python 装饰器。
首先有这么一个输出员工打卡信息的函数:
def punch():
print('昵称:两点水 部门:做鸭事业部 上班打卡成功')
punch()
输出的结果如下:
昵称:两点水 部门:做鸭事业部 上班打卡成功
然后,产品反馈,不行啊,怎么上班打卡没有具体的日期,加上打卡的具体日期吧,这应该很简单,分分钟解决啦。好吧,那就直接添加打印日期的代码吧,如下:
import time
def punch():
print(time.strftime('%Y-%m-%d', time.localtime(time.time())))
print('昵称:两点水 部门:做鸭事业部 上班打卡成功')
punch()
输出结果如下:
2018-01-09
昵称:两点水 部门:做鸭事业部 上班打卡成功
这样改是可以,可是这样改是改变了函数的功能结构的,本身这个函数定义的时候就是打印某个员工的信息和提示打卡成功,现在增加打印日期的代码,可能会造成很多代码重复的问题。比如,还有一个地方只需要打印员工信息和打卡成功就行了,不需要日期,那么你又要重写一个函数吗&#