Hi everyone
I have developed the singleton implementation. However I have found a
strange behaviour when using from different files. The code is
attached.
Executing main
new MySet object
No singleton instance
New singleton:
<__main__.Singleton instance at 0x2b98be474a70>
new MySet object
There is a singlenton instance
new Member
new MySet object
No singleton instance
New singleton:
<myset.Singleton instance at 0x2b98be474d88>
new Member
new MySet object
There is a singlenton instance
new Member
new MySet object
There is a singlenton instance
I do not know why, but it creates two instances of the singleton. Does
anybody know why?
Regards
import myset
class Member:
def __init__ (self):
print "new Member"
self.name = "one member"
instance = myset.MySet ()
instance.add (self)
import member
class MySet:
"""MySet aplication"""
__instance = None
## Singleton instance
## This class implements all methods of MySet
class Singleton:
def __init__(self):
#Set the Glade file
print "New singleton:"
print self
self.members = {}
def add (self, member):
self.members[member.name] = member;
#######################################################
#
# MYSET DELEGATES EVERYTHING IN SINGLETON METHOD
#
#######################################################
def __init__( self ):
print "new MySet object"
if MySet.__instance is None:
print "No singleton instance"
MySet.__instance = MySet.Singleton()
else:
print "There is a singlenton instance"
self.__dict__['_EventHandler_instance'] = MySet.__instance
def __getattr__(self, aAttr):
return getattr(self.__instance, aAttr)
def __setattr__(self, aAttr, aValue):
return setattr(self.__instance, aAttr, aValue)
#######################################################
#
# MAIN CALL
#
#######################################################
if __name__ == "__main__":
print "Executing main"
set1 = MySet ()
set2 = MySet ()
mbr1 = member.Member ()
mbr2 = member.Member ()
mbr3 = member.Member ()
--
http://mail.python.org/mailman/listinfo/python-list