我有一個基礎類,我想放在一些代碼中。我只希望它被實例化或爲給定的應用程序啓動一次,儘管它可能會被調用很多次。下面的代碼的問題是LowClass一遍又一遍地重新啓動。我只希望它每次測試開始一次..確保只有一個類的實例運行
import logging
class LowClass:
active = False
def __init__(self):
self.log = logging.getLogger()
self.log.debug("Init %s" % self.__class__.__name__)
if self.active:
return
else:
self.active = True
self.log.debug("Now active!")
class A:
def __init__(self):
self.log = logging.getLogger()
self.log.debug("Init %s" % self.__class__.__name__)
self.lowclass = LowClass()
class B:
def __init__(self):
self.log = logging.getLogger()
self.log.debug("Init %s" % self.__class__.__name__)
self.lowclass = LowClass()
class C:
def __init__(self):
self.log = logging.getLogger()
self.log.debug("Init %s" % self.__class__.__name__)
self.a = A()
self.b = B()
class ATests(unittest.TestCase):
def setUp(self):
pass
def testOne(self):
a = A()
b = B()
def testTwo(self):
c = C()
感謝您指出我的問題!
隨着手中的專有名稱 - 「單身」 - 現在有許多關於SO的討論這個話題的問題(如Alex Martelli的Borg模式,等等)。現在投票表示提問者對設計模式有適當的術語。 – 2009-10-15 23:52:34