How to bound a method to a instance ?
"Martin v. Löwis"
martin at v.loewis.de
Mon Feb 9 01:36:53 EST 2004
More information about the Python-list mailing list
Mon Feb 9 01:36:53 EST 2004
- Previous message (by thread): How to bound a method to a instance ?
- Next message (by thread): How to bound a method to a instance ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Emmanuel wrote: > main module : > -------------- > import toto > > a = toto.toto() > a.method() -> does something ... > > reload (toto) > now a is not reloaded... > > a.method = toto.toto().method > does not work, because a.method would be bounded to a new instance... It might be best to change the class of a: reload (toto) a.__class__ = toto.toto Then, a.method will automatically become the new method. Of course, this will also change all other methods of toto, not just method. If you really want to change only method, you could do a.__class__.__dict__['method'] = toto.toto.__dict__['method'] That would change just method, but of all instances of the old definition of toto.toto. If you really want to change only one method, and only of one object, you need to use new.instancemethod: a.method = new.instancemethod(toto.toto.method.im_func, a, a.__class__) Regards, Martin
- Previous message (by thread): How to bound a method to a instance ?
- Next message (by thread): How to bound a method to a instance ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list