delete a methode of a object?
Erik Max Francis
max at alcyone.com
Wed Oct 9 03:57:14 EDT 2002
More information about the Python-list mailing list
Wed Oct 9 03:57:14 EDT 2002
- Previous message (by thread): delete a methode of a object?
- Next message (by thread): appending to beginning of line
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thomas Marek wrote: > is it possible to delete a method of a object? For a typical instance of a class, not in a direct way that's instance-specific. For your standard instance of a class, the method is not in the instance's dictionary, it's in the dictionary of the class: >>> class C: ... def f(self, x): ... print x ... >>> c = C() >>> c.f(2) 2 >>> del c.f # the method isn't in the instance Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: C instance has no attribute 'f' >>> del C.f # it's here in the class >>> c.f(2) Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: C instance has no attribute 'f' But that would affect all other instances. If you want instance-specific removal of methods, the most obvious solution to me is simply attaching a callable attribute that raises an AttributeError: >>> def duh(x): raise AttributeError ... >>> c.f = duh >>> c.f(2) Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 1, in duh AttributeError -- Erik Max Francis / max at alcyone.com / http://www.alcyone.com/max/ __ San Jose, CA, USA / 37 20 N 121 53 W / &tSftDotIotE / \ My heart is pure as the driven slush. \__/ Tallulah Bankhead HardScience.info / http://www.hardscience.info/ The best hard science Web sites that the Web has to offer.
- Previous message (by thread): delete a methode of a object?
- Next message (by thread): appending to beginning of line
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list