Loading select queries into objects

piet at cs.uu.nl piet at cs.uu.nl
Mon Jun 18 09:46:22 EDT 2001

>>>>> "Graham Ashton" <graham at coms.com> (GA) writes:

GA> Hi. I've just started playing with database access from Python and have
GA> stumbled across yet another hole in my knowledge of Python idioms.

GA> I've got a class that has an attribute for each column in a database
GA> table, and an accessor method that sets the value of each attribute. I
GA> then populate the attributes with the result of a database query.

GA> Here's an example:

GA>     query = """
GA>         SELECT column1, column2, some_column
GA>           FROM a_table
GA>     """

GA>     cursor = self.db.cursor()
GA>     cursor.execute(query)
GA>     tup = cursor.fetchone()

GA>     self.column1(tup[0])		# this could be better!
GA>     self.column2(tup[1])
GA>     self.some_column(tup[2])

GA> What I'm wondering is; is there an idiomatic way of applying the values
GA> in a tuple to a list of functions? In Perl I'd use map(), but I'm not
GA> sure if there's a "cleaner" way in Python.

If you can use map in Perl, you can use map in Python. But I don't think
this problem can be solved easily with map, because map applies a single
function to a sequence, not a list of functions to a sequence.

That is, if I understand how you want to do it:
        The list of functions is [f0, f1, f2] and you want:

You could do something like:
funlist = (self.column1, self.column2, self.some_column)

for i in range (len(funlist)):

or use zip.
Piet van Oostrum <piet at cs.uu.nl>
URL: http://www.cs.uu.nl/~piet [PGP]
Private email: P.van.Oostrum at hccnet.nl

More information about the Python-list mailing list