Re: sharing objects between classes
> Diez B. Roggisch a écrit : >> Gerardo Herzig wrote: >> >>> Hi all. Im wondering the way to share a database connection between >>> some >>> classes: >>> >>> So far, i came up with a simple class schema, where each class means >>> each different relation, i mean i have the follow classes >>> >>> class Database(object): >>> ## make the connection >>> self.conn = make_conn() >>> >>> class Table(object): >>> def get_fields: >>> >>> > (snip) >> >> Take a look at the sources of e.g. SQLObject and how they do it (in SO, >> the >> concept is called "HUB") >> > And while you're at it, take a look at SQLAlchemy too, and ask yourself > if you really need to roll your own solution !-) Yes, i dont need to reinvent the wheel, i know, it just seems like a pattern i will have to deal with, not just in this case. SQLObject seems like a big peace of code to read. At least to me (not that good programmer). I will take a look at SQLAlchemy, and see a little more. Thanks! Gerardo -- http://mail.python.org/mailman/listinfo/python-list
Re: sharing objects between classes
Diez B. Roggisch a écrit : > Gerardo Herzig wrote: > >> Hi all. Im wondering the way to share a database connection between some >> classes: >> >> So far, i came up with a simple class schema, where each class means >> each different relation, i mean i have the follow classes >> >> class Database(object): >> ## make the connection >> self.conn = make_conn() >> >> class Table(object): >> def get_fields: >> >> (snip) > > Take a look at the sources of e.g. SQLObject and how they do it (in SO, the > concept is called "HUB") > And while you're at it, take a look at SQLAlchemy too, and ask yourself if you really need to roll your own solution !-) -- http://mail.python.org/mailman/listinfo/python-list
Re: sharing objects between classes
Gerardo Herzig wrote: > Hi all. Im wondering the way to share a database connection between some > classes: > > So far, i came up with a simple class schema, where each class means > each different relation, i mean i have the follow classes > > class Database(object): > ## make the connection > self.conn = make_conn() > > class Table(object): > def get_fields: > > > And at this point i dont know how to use the Database.conn attribute, > since the get_fields method will perform a query over the given database. > At first, i just define the Table class as a inner class of Database, > but if i try a > class Database(object): > ## make the connection > def __init__(self): > self.conn = sql_connect() > self.table = Table('foo') > > class Table(object): ## inner class > def get_fields(self, name): > > > I get a "NameError: global name 'Table' is not defined". > > So, which would the right pattern to use here? Using a global module? I > dont know why, but i dont like that idea too much. > > Any comments will be appreciated! > Thanks! Take a look at the sources of e.g. SQLObject and how they do it (in SO, the concept is called "HUB") Essentially, you set a reference to a global connection object that itself isn't a simple global but useses threading.local to have one connection per thread. Then you can access that connection transparently. Diez -- http://mail.python.org/mailman/listinfo/python-list
sharing objects between classes
Hi all. Im wondering the way to share a database connection between some classes: So far, i came up with a simple class schema, where each class means each different relation, i mean i have the follow classes class Database(object): ## make the connection self.conn = make_conn() class Table(object): def get_fields: And at this point i dont know how to use the Database.conn attribute, since the get_fields method will perform a query over the given database. At first, i just define the Table class as a inner class of Database, but if i try a class Database(object): ## make the connection def __init__(self): self.conn = sql_connect() self.table = Table('foo') class Table(object): ## inner class def get_fields(self, name): I get a "NameError: global name 'Table' is not defined". So, which would the right pattern to use here? Using a global module? I dont know why, but i dont like that idea too much. Any comments will be appreciated! Thanks! Gerardo -- http://mail.python.org/mailman/listinfo/python-list