On Sep 19, 7:26 am, "exhuma.twn" <[EMAIL PROTECTED]> wrote: > I remember reading about the Singleton pattern in python and how it's > an unpythonic pattern and all. At the time I did not need the > Singleton anyways, so I just glanced over the document. > > But, setting this aside: I have an application where I have a > connection to a database. At some point in the application I open up a > new window. The new windows resides in a different module. So I have a > directory structure like this: > > - mainapp.py > - newwindow.py > > So I import "newwindow" in "mainapp" so I can instantiate and display > it. Meanwhile, the main-app has an open connection to the database. > What's the cleanest way to hand this connection to the new window? I > can see several possibilities: > > 1) Simply pass the connection as paramtere to the constructor of new- > window. > 2) Use the "Singleton" deisign pattern to keep a reference to the > connection > 3) Open up a completely new connection to the database in the new > window. > > Now, option 1) is clearly the easiest to implement, however, I somehow > tend to use option 2 (the singleton) as it's more flexible. Option 3 > looks ugly to me. > > This is a stuation I run into many times. And I am always faced with > the same choice. And I never know which one to chose. And now that I > am getting more and more comfortable with the basics of python, I > would like to know if I am missing something more "pythonic". > > So, what would you recommend?
You don't need a way to make every instance the same. You need a way where every instance shares the same state. Aka, the Borg pattern, courtesy of Alex Martelli. It's in the Python Cookbook at "http:// aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531". Good luck! --Jason -- http://mail.python.org/mailman/listinfo/python-list