python的设计模式

连接:
1。
http://www.suttoncourtenay.org.uk/duncan/accu/pythonpatterns.html
2。
http://groups.google.com/group/comp.lang.python/browse_frm/thread/1689dc058c326309/534914ce57f76334#534914ce57f76334
3。
http://www.aleax.it/Python/5ep.html

################################
下面是一种不完全的singleton实现:
class myroot(object):
    cc = None
    class counter(object):
        idcounter = 0
        @classmethod
        def getid(cls):
            cls.idcounter = cls.idcounter + 1
            return cls.idcounter
    def __init__(self):
        super(myroot, self).__init__()
        if not self.cc:
            self.cc = self.counter()
        self.id = self.cc.getid()
        print self.id
class mychild(myroot):
    def __init__(self):
        super(mychild, self).__init__()
class mychild2(myroot):
    def __init__(self):
        super(mychild2, self).__init__()
ab = mychild()
bc = mychild()
cd = mychild2()
de = mychild2()
这里的关键是类的定义是可以保持只有一个的。