[python面试题] 装饰器是什么,有什么功能,能用在什么业务场景?



业务场景

1.登录判断装饰器:

    之前做过的一个用flask框架实现的移动app项目,里面大量用到是否已经登录的判断,如果这个业务逻辑大量重复地写在视图函数,代码的复用性很差,因此我将登录判断封装成装饰器,然后用这个装饰器装饰每一个需要验证是否登录的视图函数,代码如下:


2.事务原子性判断装饰器

    之前用django框架做过订单提交功能,因为订单数据保存到数据库必须保持事务一致性,即所有数据要不全部提交成功,要不就回退到最开始的状态,用的是django自带的装饰器@transaction.atomic,在事务开始前打下一个点:transaction.savepoint(),相当于游戏的存档点,如果全部提交成功就保存到数据库,否则就回退到存档点;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权: https://github.com/haiiiiiyun/awesome-django-cn Aweso...
    若与阅读 23,424评论 3 241
  • //延时1s执行 DispatchQueue.main.asyncAfter(deadline: Dispatch...
    MJBaby阅读 4,140评论 0 1
  • 前言 民以食为天。食色,人之性。 食物,从来都有翻江蹈海、抓挠心肺的力量。 对食物,也就总有一些回忆铭心刻骨。 但...
    铅笔芒种阅读 3,582评论 0 1