Jeffrey E. Forcier wrote: > In other words, str() is _NOT_ apparently calling <object>.__str__ as > it's supposed to! However, calling __str__ directly (which, yes, you're > not supposed to do) does work as expected:
I'm too tired and/or lazy to check, but I believe str() is calling MyClass.__str__(testObject) as it is supposed to rather than testObject.__str__() as you say it is supposed to. ;-) Someone else or Google can probably enlighten you on the reason for this better than I. I think this is something that is not explained very well in the docs, which do say that a class implements special method names, but doesn't make it very clear that an object can't always override them. If you redirect to a second method you can overwrite on the instance, I think you will get the results you want. -- Michael Hoffman -- http://mail.python.org/mailman/listinfo/python-list