Dynamically create a class (or class instance) and its attributes?
Jean Brouwers
JBrouwersAtProphICyDotCom at no.spam.net
Tue Jul 27 02:05:05 EDT 2004
This may work.
<pre>
class Dyn:
'''Dynamic class.
'''
def __init__(self, **kwds):
self.set(**kwds)
def set(self, **kwds):
for a, v in kwds.iteritems():
setattr(self, a, v)
# all attr defined at creation
# time with an initial value
c = Dyn(a1=1, a2=2, a3=3)
# more attr can be added
c.set(a4=4, a5=5)
# attr can be changed
c.a1=10
c.set(a1=20)
</pre>
/Jean Brouwers
In article <nblNc.19344$QO.6564 at bignews5.bellsouth.net>, Robert Oschler
<no_replies at fake_email_address.invalid> wrote:
> Hello,
>
> I am a Python newbie (by experience, not chronologically :) ), so if any of
> this doesn't make sense my apologies in advance.
>
> I am reading the chapter in The Python Cookbook on databases and the MySQLdb
> module. In it they show an example of a recipe that lets you access fields
> in a MySQL row by name rather than by column number. For example, given a
> MySQL row object from a fetchone() call:
>
> employee_name = sqlrow[field_dict['empname']]
>
> To make the syntax easier and clearer, I would like to create a Python class
> instance that would allow me to access the fields in the MySQL row as
> attributes of a class created dynamically from the row structure. For
> example:
>
> employee_name = ez_sqlrow.empname
>
> What would be the best way to create such a class or class instance? Any
> code examples you have would be welcome.
>
> Thanks
More information about the Python-list
mailing list