"Jojo Mwebaze" <jojo.mweb...@gmail.com> wrote
Assuming i have a class bank as below .
class bank(object):
def __init__(self, bal=0):
self.bal = bal
def deposit(self, amount):
self.bal+=amount
print self.bal
I define a method debit - which i add to the class onthefly
bank.debit = debit
#I can also add an attribute owner
myaccount.owner = 'jojo'
My problem is how to make the added attributes, 'owner' and 'debit'
persistent automatically
If that's your only problem with this approach congratulations!
How does your orther code know when/if these dynamic
operations/data exist so as to use them? If they just assume
they exist then why not just add them in the definition. Even as
nulls?
While Python allows you to dynamically add features to classes/objects
its not something I would recommend unless you have a really good
reason - not least because you bring upon yourself all sorts of
problems!
If you are determined to do so you can make the objects persistent
using the approach I outline on my tutorial but adding a loop to cycle
over the contents of dir(). But you may find that recovering the
objects - especially if they have a mixed set of attribnutes -
presents
even more problems...
IMHO This is a feature of python that should be considered unorthodox
and only to be used when no other approach will work!
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor