refactoring so that multiple changes can be made with one variable?
Paddy
paddy3118 at netscape.net
Wed Nov 15 02:10:07 EST 2006
John Salerno wrote:
> Paddy wrote:
>
> > You could keep a handle on all object instances created then go through
> > the objects making appropriate changes, e.g:
> >
> >
> > class Character(object):
> > instances = []
> > def __init__(self, name, strength, dexterity, intelligence):
> > instances.append(self)
> > # as before ...
> > def mod_instances(self):
> > for inst in instances:
> > inst.some_property += 1 # or whatever
> > # (Untested)
>
> But doesn't this require that the change be predetermined so you can
> code it into the method?
>
> I don't necessarily need a programmatic way to do this, just a simple
> way to go back to the code and edit a single thing, instead of having to
> update all the numbers.
I just put in a simple version of mod_instances. mod_instances could
take a function as an argument the napply the function to all
instances, e.g:
def mod_func1(inst):
inst.abc += inst.xyz # or whatever
class Character(object):
instances = []
def __init__(self, name, strength, dexterity, intelligence):
instances.append(self)
# as before ...
def mod_instances(self, mod_func):
for inst in instances:
mod_func(inst)
You can define different mod_func, like mod_func1 to make whatever
changes to the instances.
More information about the Python-list
mailing list