关于python单例的题目,求解,谢谢


单例 是最为最常见的设计模式之一。对于任何时刻,如果某个类只存在且最多存在一个具体的实例,那么我们称这种设计模式为单例。例如,对于 class Mouse (不是动物的mouse哦),我们应将其设计为 singleton 模式. 你的任务是设计一个 getInstance 方法,对于给定的类,每次调用 getInstance 时,都可得到同一个实例。

class Solution:
    # @return: The same instance of this class every time
    @classmethod
    def getInstance(self,cls):
        # write your code here
  • 4 条回复 | 2 人参与
  • class Solution:
        # @return: The same instance of this class every time
        @classmethod
        def getInstance(self,cls):
            # write your code here
            if cls._obj is None:
                cls._obj = cls()
            return cls._obj
    
  • jkxruby # 2

    @linw1995 报错拉~

    ************* Module Main
    E: 19, 8: No value for argument 'cls' in classmethod call (no-value-for-parameter)
    E: 20, 8: No value for argument 'cls' in classmethod call (no-value-for-parameter)
    
  • @jkxruby 给的参数改一下

    # 1
    class Solution:
        # @return: The same instance of this class every time
        @classmethod
        def getInstance(cls):
            # write your code here
            if cls._obj is None:
                cls._obj = cls()
            return cls._obj
    
  • @jkxruby ……又写错了额

    class A:
        @classmethod
        def getInstance(cls):
            if cls.__dict__.get('_obj') is None:
                cls._obj = cls()
            return cls._obj
    
添加一条新回复
登录 或者 注册 后发表回复