专栏首页sktjpython 单实例运行

python 单实例运行

工厂函数

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 调用父类方法super()

    class A: def spam(self): print('A.spam')

    用户5760343
  • python pyqt5弹出子窗体

    from PyQt5 import QtCore, QtGui, QtWidgets import sys from PyQt5.QtWidgets imp...

    用户5760343
  • python _、__和__xx__的区别

    Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范...

    用户5760343
  • python记录_day17 类与类之间

    聚合关系:属于关联关系中的一种特例。侧重点是xxx和xxx聚合成xxx,各有各的生命周期。比如电脑,电脑里有CPU、硬盘、内存等,电脑挂了,CPU还是好的,还是...

    py3study
  • python 调用父类方法super()

    class A: def spam(self): print('A.spam')

    用户5760343
  • python中的嵌套类

    在.NET和JAVA语言中看到过嵌套类的实现,作为外部类一个局部工具还是很有用的,今天在python也看到了很不错支持一下。动态语言中很好的嵌套类的实现,应该说...

    py3study
  • Python类的内置方法

    本章介绍一下python类中的一些内置方法。内置的方法有很多,有些内置方法在object类中已经定义,子类可以拿来直接使用,也可以重写,但是有些内置方法obje...

    py3study
  • 零基础学习 Python 之封装

    今天来讲 OOP 的最后一个特性:「封装」。封装是对具体对象的一种抽象,简单来说就是将某些部分隐藏起来,在程序外部看不到,这个看不到不是说人用眼睛看不到那个代码...

    Rocky0429
  • (转)Python在线多人多聊天室服务器

    七夜安全博客
  • day22-day27-面向对象

    少年包青菜

扫码关注云+社区

领取腾讯云代金券