hr|Python 中的装饰器,会让你的写代码变得更好。生活更加神奇( 二 )
括号计数开始!想象一下 , 你有五六个这样的函数相互嵌套 。 装饰器符号不是比这种嵌套的混乱更容易阅读吗?
您甚至可以在接受参数的函数上使用装饰器 。 现在想象一下上面一行中的一些参数 , 你的混乱就完成了 。 装饰者使它整洁 。
最后 , 您甚至可以向装饰器添加参数 ——比如. 是的 , 你可以在没有装饰器的情况下完成所有这些 。 但是我希望你在三周后重新阅读你的无装饰器代码时能从中获得很多乐趣…… @mydecorator(argument)
应用:装饰师切奶油的地方既然我已经希望让您相信装饰器使您的生活轻松三倍 , 那么让我们看一些装饰器基本上必不可少的经典示例 。
测量执行时间假设我们有一个函数被调用 , 我们想知道它需要多长时间 。 好吧 , 只需使用装饰器! waste time()
十几行代码 , 我们就完成了!此外 , 您可以根据需要使用任意数量的功能 。 measuretime()
减慢代码速度有时您不想立即执行代码而是等待一段时间 。 这就是减速装饰器派上用场的地方:
呼叫使您可以休息 5 分钟 , 之后您的控制台会提醒您重新开始工作 。 wakeup()
测试和调试假设您在不同阶段调用了许多不同的函数 , 并且您无法了解何时调用什么 。 为每个函数定义使用一个简单的装饰器 , 可以带来更多的清晰度 。 像这样:
还有一个更复杂的例子在这里 。 但是请注意 , 要理解该示例 , 您必须检查如何使用参数装饰函数 。 尽管如此 , 还是值得一读!
重用代码这一点不言而喻 。 如果你已经定义了一个函数 decorator() , 你可以在你的代码中到处散布 。 老实说 , 我认为没有比这更简单的了! @decorator
处理登录如果您有只有在用户登录时才能访问的功能 , 那么使用装饰器也很容易 。 我将向您提供完整示例以供参考 , 但原理非常简单:首先 , 您定义一个函数 , 如. 在任何需要登录的函数定义之前 , 您弹出. 很简单 , 我会说 。 login_required() @login_required
语法糖——或者为什么 Python 如此甜蜜并不是说我不?批评 Python 或不使用 合适的替代语言 。 但是 Python 有一个很大的吸引力:它非常容易消化 , 即使您不是受过培训的计算机科学家并且只想让事情发挥作用 。
如果 C++ 是橘子 , 那么 Python 就是菠萝:同样有营养 , 但甜度是它的三倍 。 装饰器只是组合中的一个因素 。
但我希望你已经明白为什么它是一个如此重要的甜蜜因素 。 语法糖为您的生活增添一些乐趣!没有健康风险 , 除了你的眼睛盯着屏幕 。
- 太空中的真菌毒素是否危害宇航员健康?科学家:尚不明确
- 科学家:人类只是一片巨大的“空洞虚无”中的一粒微尘!
- 文艺评论丨科幻题材崛起与Z世代审美观照中的双向奔赴
- 华为|华为原董事长孙亚芳:我们有些销售人员眼睛中的客户就像猎物!
- LG|时隔数年,LG gram 14依旧是商务本中的“种子选手”
- Python|十年质保、3400MB/S!279元买512GB NVMe高速固态硬盘
- 格力电器|不要再说Python难了,按照这个学习路线,四周速成Python
- 华为Nova|华为nova10真机曝光:相机有一圈金色的圆环装饰,很是吸睛
- Python|华为再造新车!问界M7揭下外企的遮羞布,余承东:超越百万豪车
- Python|OPPO A96可以升级ColorOS 12了,我看谁还说入门机只管生不管养?
