On Sat, Sep 19, 2020 at 11:44 AM Guido van Rossum <gu...@python.org> wrote: > Another brainstorm (or brainfart): maybe repr() should show the module/class > and the name, and str() should only show the name. We'd then get > ``` > >>> # Mock-up! > >>> print(str(re.i)) > IGNORE > >>> print(repr(re.i)) > re.IGNORE > >>> > ``` > and similar for Color.RED: > ``` > >>> # Another mock-up! > >>> print(str(Color.RED)) > RED > >>> print(repr(Color.RED)) > Color.RED > >>> > ``` >
+1. There's actually a bit of a weird edge case with IntFlag at the moment, and this would bypass that, at least for the str(). >>> from enum import IntFlag, auto >>> class UF(IntFlag): ... CT_LOW_GRAVITY = auto() ... FLYING = auto() ... >>> UF.CT_LOW_GRAVITY | UF.FLYING <UF.FLYING|CT_LOW_GRAVITY: 3> >>> str(UF.CT_LOW_GRAVITY | UF.FLYING) 'UF.FLYING|CT_LOW_GRAVITY' The "UF." prefix is put on the start of the combined group, which means it's not actually evallable (for what it's worth), and it's that bit inconsistent. I'm absolutely fine with removing the classname altogether, so this would show as "FLYING|CT_LOW_GRAVITY". ChrisA _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/BEAZU4H3OS3PS45ZRZIVTPDGD7JSPGW7/ Code of Conduct: http://python.org/psf/codeofconduct/