⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 singletonmetaclass.py

📁 this is the most basic to learn python
💻 PY
字号:
#: c01:SingletonMetaClass.py
class SingletonMetaClass(type):
  def __init__(cls,name,bases,dict):
    super(SingletonMetaClass,cls)\
      .__init__(name,bases,dict)
    original_new = cls.__new__
    def my_new(cls,*args,**kwds):
      if cls.instance == None:
        cls.instance = \
          original_new(cls,*args,**kwds)
      return cls.instance
    cls.instance = None
    cls.__new__ = staticmethod(my_new)

class bar(object):
  __metaclass__ = SingletonMetaClass
  def __init__(self,val):
    self.val = val
  def __str__(self):
    return `self` + self.val

x=bar('sausage')
y=bar('eggs')
z=bar('spam')
print x
print y
print z
print x is y is z
#<hr>
output = '''
<__main__.bar object at 0x00793100>spam
<__main__.bar object at 0x00793100>spam
<__main__.bar object at 0x00793100>spam
1
'''

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -