I must be an idiot, please pity me!
bdesth at nospam.free.fr
Sat Sep 14 06:21:13 CEST 2002
> On Thu, 12 Sep 2002 01:25:59 +0100, laotseu wrote:
>>Creating a db connection in each function for sure not be very
>>efficient.But what's wrong with passing the database connection to the
>>functions in mod1, mod2, and modXXX ???
> That connection has to be passed to the other functions (where needed of
> course) in mod1. Say, mod1.functiona may use functions f1, f2 and f3. My
> gut feeling of having to pass that connection to all of these said "this
> can't be right". This is what I've done but it sure doesn't feel right!
>>Anyway, you can make it simpler, like this :
> Yay, now for the good stuff!
>>in each module,
>>- create a global db_connection variable - add an init() function, that
>>takes a db_connection as argument and assign it to the module's global
>>db_connection variable - and don't forget to call this function before
> Yes, I can follow that. Once I saw that "global" was more "local" I've
> never really considered using it.
??? Not clear what you mean ???
>>Another, more OO way to do this would be to rewrite your modules as
>>classes, each getting a db_connection argument in it's __init__(), and
>>then, in the main script, create the needed objects.
> So the resulting object would be the same as what I return with now?
A simple exemple is better than a long explanation :
# this was your module mod3
def __init_(self, dbConnection):
self.dbConnection = dbConnection
# add what you need here
something = self.dbConnection.doThis(args)
# this is you GCI module
dbConnection = dbModule.CreateMyDbConnection(args)
m3 = Mod3(dbConnection)
this = m3.f1(42)
Got it ?
More information about the Python-list