[issue13224] Change str(x) to return only __qualname__ for some types

Éric Araujo report at bugs.python.org
Thu Nov 24 16:55:41 CET 2011


Éric Araujo <merwok at netwok.org> added the comment:

You are right, I misinterpreted “use”.  I cloned the the PEP 3155 repo and ran my test script (I’ll attach it for reference) and reprs/strs are indeed "<class '__main__.A.B'>" and "<function makestrip.<locals>.strip at ...>", so this request is not obsoleted.

I’ve updated my patch to use qualnames for str(cls) and str(func).  As I reported before, if I want str(sys.exc_info) to be 'exc_info', then Python unbound methods (i.e. functions) are affected:

    <method 'update' of 'dict' objects>
    <built-in method update of dict object at ...>
    <method 'tolist' of 'array.array' objects>
    <built-in method tolist of array.array object at ...>
 →  Counter.update
    <bound method Counter.update of Counter()>
 →  Top.Nested.method  # this checks qualnames are used
    <bound method Nested.method of <__main__.Top.Nested object at ...>

It seems to me that this is not a problem: Python 3 unbound methods *are* functions.  If you decide that having str(method) unchanged for all kinds of methods is more important than giving all kinds of functions a short str, I can do it.

----------
dependencies: +PEP 3155 implementation
Added file: http://bugs.python.org/file23771/change-some-str.diff

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue13224>
_______________________________________


More information about the Python-bugs-list mailing list