码迷,mamicode.com
首页 > 编程语言 > 详细

python实现单例模式

时间:2019-11-26 22:56:19      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:sel   ret   pytho   rgs   python实现   **kwargs   call   foo   return   

class SingletonType(type):

def __init__(self,*args,**kwargs):

    super(SingletonType,self).__init__(*args,**kwargs)



def __call__(cls, *args, **kwargs): # 这里的cls,即Foo类

    print('cls',cls)

    obj = cls.__new__(cls,*args, **kwargs)

    cls.__init__(obj,*args, **kwargs) # Foo.__init__(obj)

    return obj

class Foo(metaclass=SingletonType): # 指定创建Foo的type为SingletonType

def __init__(self,name):

    self.name = name

def __new__(cls, *args, **kwargs):

    return object.__new__(cls)

obj = Foo(‘xx‘)

python实现单例模式

标签:sel   ret   pytho   rgs   python实现   **kwargs   call   foo   return   

原文地址:https://www.cnblogs.com/zhaogang0104/p/11938683.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!