[Python-Dev] Re: __str__ does not default to __repr__ if a base classhas __str__

Terry Reedy tjreedy at udel.edu
Mon May 17 11:56:08 EDT 2004


"Edward C. Jones" <edcjones at erols.com> wrote in message
news:40A8D37B.7030807 at erols.com...
> # In the code below, "a.__str__()" does not default to "a.__repr__() as
> # might be expected. It finds the "__str__" in the base class X. The
> # Reference Manual, section 3.3.1, says:
> #    If a class defines __repr__() but not __str__(), then __repr__() is
> #    also used when an 'informal' string representation of instances of
> #    that class is required.
> # If the reader is in lawyer mode, the documentation is correct.
> # Is the current behavior what was intended? What should the behavior be?
>
> class X(object):
>     def __str__(self):
>         return 'str for X'
>
>     def __repr__(self):
>         return 'repr for X'
>
> class A(X):
>     def __repr__(self):
>         return 'repr for A'
>
> #    __str__ = __repr__
>
> x = X()
> a = A()
> print x.__str__()
> print x.__repr__()
> print a.__str__()
> print a.__repr__()
>
>
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
http://mail.python.org/mailman/options/python-dev/python-python-dev%40m.gmane.org
>






More information about the Python-Dev mailing list