Day 17: 装饰器 (Decorator):给函数穿上“新衣”

1. 引言

各位老朋友,我是阿扩。

想象一下,你是一位才华横溢的歌手,你的主业是唱歌(sing()函数)。你的歌声优美,深受大家喜爱。现在,你的经纪人提出了一些新要求:

  1. 在你每次上台唱歌前,需要有一段华丽的灯光秀和开场白(记录日志、权限检查)。
  2. 在你唱完歌后,需要统计一下你这次表演花了多长时间,并向观众致谢(性能分析、清理工作)。

你会怎么做?最直观的想法,可能是在你每一个唱歌的函数里,手动加上这些开场和收尾的代码。但如果你有一百首不同的歌(一百个函数),你就要重复修改一百次。这不仅枯燥,而且一旦经纪人又有了新想法(比如增加烟雾效果),你又得改一百次。这显然违背了我们程序员信奉的**DRY(Don’t Repeat Yourself)**原则。

有没有一种方法,可以不修改你唱歌的核心逻辑,又能动态地给你所有的“唱歌”行为,都套上这层“舞台效果”呢?

答案就是装饰器(Decorator)。它就像一件神奇的“演出服”。你只需要在定义你的sing(

你可能感兴趣的:(python)