On Thu, 23 Oct 2008 10:55:56 +0200, Christian Heimes wrote:

> netimen wrote:
>> How can I substitute __str__ method of an instance?
> 
> It's not possible. For performance and other reasons most __*__ methods
> are looked up on the type only.
> 
> Christian

However, you can dispatch back to the instance if you really must:


class MyObj(object):
    def __init__(self):
        self.__str__ = lambda self: "I'm an object!"
    def __str__(self):
        return self.__str__(self)


But honestly, this sounds like a bad idea. If instances of the one class 
have such radically different methods that they need to be treated like 
this, I question whether they actually belong in the same class.




-- 
Steven
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to