欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用metaclass實現Singleton模式的方法

 更新時間:2015年05月05日 10:41:52   作者:鴣斑兔  
這篇文章主要介紹了Python使用metaclass實現Singleton模式的方法,實例分析了Python基于metaclass實現單例模式的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Python使用metaclass實現Singleton模式的方法。分享給大家供大家參考。具體實現方法如下:

class Singleton(type):
  def __call__(cls, *args, **kwargs):
    print "Singleton call"
    if not hasattr(cls, 'instance'):
      cls.instance = super(Singleton, cls).__call__(*args, **kwargs)
    return cls.instance
  def __new__(cls, name, bases, dct):
    print "Singleton new"
    return type.__new__(cls, name, bases, dct)
  def __init__(cls, name, bases, dct):
    print "Singleton init"
    super(Singleton, cls).__init__(name, bases, dct)
class Cache(object):
  __metaclass__ = Singleton
  def __new__(cls, *args, **kwargs):
    print "Cache new"
    return object.__new__(cls, *args, **kwargs)
  def __init__(cls, *args, **kwargs):
    print "Cache init"
  def __call__(cls, *args, **kwargs):
    print "Cache call"
print Cache()
print Cache()

輸出:

Singleton new
Singleton init
Singleton call
Cache new
Cache init
<__main__.Cache object at 0x01CDB130>
Singleton call
<__main__.Cache object at 0x01CDB130>

希望本文所述對大家的Python程序設計有所幫助。

相關文章

最新評論