导航
  • 报考
  • 备考
  • 政策

报考

备考

复习资料

政策

行业动态

分享|进阶Python单例模式学习——装饰器模式

环球青藤·2019-10-22 13:19:03浏览20 收藏2

请输入下面的图形验证码

提交验证

预约成功

我知道了
摘要 当今世界充满了各种数据,而python是其中一种的重要组成部分。然而,若想其有所应用,我们需要对这些python理论进行实践。其中包含很多有趣的的过程,然后将其用于某些方面。其中一种装饰器模式的使用。今天环球网校的小编就来和大家讲讲装饰器模式的使用场景。

使用装饰器来实现单例模式也是python的经典面试题,可以一道简单的题目同时考察装饰器的理解和单例的实现。

装饰器(decorator)可以动态地修改一个类或函数的功能。这里,我们也可以使用装饰器来装饰某个类,使其只能生成一个实例

def singleton(cls, *args, **kw):
      instances = {}
      def _singleton():
            if cls not in instances:
                  instances[cls] = cls(*args, **kw)
            return instances[cls]
      return _singleton
@singleton
class MyClass4(object):
      a = 1
      def __init__(self, x=0):
            self.x = x
one = MyClass4()
two = MyClass4()
two.a = 3
print one.a

优点:相比多重继承来说,使用装饰器会更加直观,更pythonic,更elegant的方法

缺点:当你实例化Myclass的时候,得到的其实是singleton对象,是一个方法,而不是类,所以没办法使用类的本身的属性

以上就是装饰器模式的使用场景。可能在刚讲解完这一实际应用之后,大家的印象还很模糊,不如打开电脑,那正好现在就上手操作一下,试一试吧!也许你还会发现更多python应用为您带来的乐趣环球网校的小编在这里希望这些信息可以对您有所帮助。

展开剩余
资料下载
历年真题
精选课程
老师直播

注册电脑版

版权所有©环球青藤All Rights Reserved