class User:
> """user object
> """
>
> def __init__(self, id):
> self._id = id
> self._user=db.query('select * from users where
> id=$id',vars=locals())
> if not self._user:
for k in self.user.keys(): setattr(self,k,self.user[k]) is there a better way to do this? Yoan Blanc wrote: What you wanna do isn't a dict but that: http://docs.python.org/ref/attribute-access.html-- Yoan On Wed, May 14, 2008 at 9:47 AM, Yoan Blanc <[EMAIL PROTECTED]> wrote:http://www.diveintopython.org/object_oriented_framework/special_class_methods.html or be naughty: class User(dict): ... On Wed, May 14, 2008 at 9:42 AM, Paul Jobs <[EMAIL PROTECTED]> wrote: > > im trying to create a class user > so that > > i can do > > r=User(1) > > > r._user.keys() > ['rating', 'last_name', 'pageviews', 'ip', 'number_polls', 'site', > 'myrand', 'hotmail', 'number_activities', 'skype', 'id', 'city', > 'rawpassword', 'number_useraudios', 'zip', 'number_votes', 'last_login', > 'number_userpics', 'music', 'email', 'number_pages', 'username', > 'number_posts', 'hash', 'number_comments', 'number_pictures', 'first_name', > 'yahoo', 'groups', 'heroes', 'favoritestuff', 'number_usermessages_sent', > 'vanity', 'interests', 'television', 'number_uservideos', 'created', 'dob', > 'gender', 'number_friends', 'liketomeet', 'htmlcodes', 'aim', 'movies', > 'password', 'books', 'profilepic', 'number_usermessages', 'email_subscribe', > 'number_communities'] > > so i want this to become > > r.rating > r.last_name > r.pageviews and so on > r.username > r.photos() > and so on > > but > > i want to set the keys of the user row as the keys of User self > but i m not sure how to do it > > for i in self._user.keys(): > self[i]=self._user[i] > > gives an error > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "api.py", line 40, in __init__ > self[i]=self._user[i] > AttributeError: teenwag instance has no attribute '__setitem__' > > You can do something like > > self.update(_user) > > doesnt work either > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "api.py", line 39, in __init__ > self.update(self._user) > AttributeError: user instance has no attribute 'update' > > Any thoughts on how to set this? > > class User: > """user object > """ > > def __init__(self, id): > self._id = id > self._user=db.query('select * from users where > id=$id',vars=locals()) > if not self._user: > self._validuser=False > self._username='' > self._firstname='' > self._lastname='' > self._dob='' > self._gender='' > self._sex='' > else: > self._user=self._user[0] > self._validuser=True > self._username=self._user.username > self._firstname=self._user.first_name > self._lastname=self._user.last_name > self._dob=self._user.dob > self._gender=self._user.gender > self._sex=self._user.gender > for i in self._user.keys(): > self[i]=self._user[i] > def userrow(self): > return db.query('select * from users where > id=$self._id',vars=locals())[0] > def photos(self): > return db.query('select pic,id, username from userpics where > user_id=$self._id',vars=locals()) > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web.py" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/webpy?hl=en -~----------~----~----~----~------~----~------~--~--- |
- [webpy] instantiating class local variables with keys of db.... Paul Jobs
- [webpy] Re: instantiating class local variables with ke... Yoan Blanc
- [webpy] Re: instantiating class local variables wit... Yoan Blanc
- [webpy] Re: instantiating class local variables... Paul Jobs
- [webpy] Re: instantiating class local varia... paul jobs
- [webpy] Re: instantiating class local ... Hermann Kaser
- [webpy] Re: instantiating class lo... paul jobs
- [webpy] Re: instantiating class lo... paul jobs
- [webpy] Re: instantiating clas... paul jobs
