[EMAIL PROTECTED] a écrit : > Bruno Desthuilliers wrote: (snip) >> >>Instead of exposing problems with your solution, you may want to expose >>the real use case ? > > > I'm working with a team that's doing social modeling, and for example, > I need to model workers that at some point in the program may or may > not also become employers.
If I understand correctly, only some of the existing workers will become employers ? > Now, I want the workers to take on all > behaviors and attributes of an employer in addition to their > pre-existing "worker" behaviors and attributes. wrt/ behaviors, it's easy as pie. Attributes (I mean instance attributes) are another problem, but I don't have enough informations to deal with this problem here. > Also, as I'm sure you > guessed, the workers' attributes need to retain their values at that > point in the program, so a brand new worker-employer object wouldn't in > itself do the trick. Here's a simple stupid possible solution: class Worker(object): def __init__(self, ...) # init code here # behaviours here def becomeEmployer(self): self.___class__ = Employer class Employer(Worker): # behaviours here w = Worker(...) w.becomeEmployer() Note that there's no initializer in the Employer class - it wouldn't get called anyway (not automatically at least). -- http://mail.python.org/mailman/listinfo/python-list