美文网首页
python 单实例运行

python 单实例运行

作者: SkTj | 来源:发表于2019-12-04 11:06 被阅读0次

工厂函数

class CachedSpamManager2:
def init(self):
self._cache = weakref.WeakValueDictionary()

def get_spam(self, name):
    if name not in self._cache:
        temp = Spam3._new(name)  # Modified creation
        self._cache[name] = temp
    else:
        temp = self._cache[name]
    return temp

def clear(self):
        self._cache.clear()

class Spam3:
def init(self, *args, **kwargs):
raise RuntimeError("Can't instantiate directly")

# Alternate constructor
@classmethod
def _new(cls, name):
    self = cls.__new__(cls)
    self.name = name
    return self

或者

The class in question

class Spam:
def init(self, name):
self.name = name

Caching support

import weakref
_spam_cache = weakref.WeakValueDictionary()
def get_spam(name):
if name not in _spam_cache:
s = Spam(name)
_spam_cache[name] = s
else:
s = _spam_cache[name]
return s

相关文章

网友评论

      本文标题:python 单实例运行

      本文链接:https://www.haomeiwen.com/subject/jgchpctx.html