Tuesday 12 April 2005 18:51 pm Michele Simionato wrote: > Uhm? If I pass different parameters I want to have > different instances. The Singleton behaviour is recovered > only when I pass always the same arguments, in > particular when I pass 0-arguments: > >>>> class Foobar: > ... __metaclass__ = Memoize > ... >>>> Foobar() > <__main__.Foobar object at 0xb7defbcc> >>>> Foobar() > <__main__.Foobar object at 0xb7defbcc> >>>> Foobar() > <__main__.Foobar object at 0xb7defbcc> > > Of course if for Singleton you mean "whatever I pass > to the constructor it must always return the same > instance" then this pattern is not a Singleton. > This is why I call it memoize ;)
:) I guess it depends on what you want to do with the instance and the constructor, wether it satisfies the condition to be a "singleton": If you pass i.e. the timestamp of object creation in the constructor, or the class name that instanciates the object, a memoized implementation would not suffice. On the other hand if you need parameterized implementations of a singleton, i.e. for each colour 'red', 'green', 'blue' - then a memoized implementation would be better. Uwe -- http://mail.python.org/mailman/listinfo/python-list