[Python-Dev] multiple inheritance and `__str__`

2021年11月30日 23:58:11 -0800

I ran into an issue today with `str()` not behaving as I thought it should.
Given the following test script, what should happen?
-- 8< ------------------------------
class Blah(object):
 def __str__(self):
 return 'blah'
class Huh(int, Blah):
 pass
class Hah(Blah, int):
 pass
huh = Huh(7)
hah = Hah(13)
print(huh)
print(hah)
-- 8< ------------------------------
I thought I would get:
7
blah
and indeed, that is what I got for Pythons 2.7 - 3.7. However, starting with 
Python 3.8 I started getting:
blah
blah
To say the least, I was surprised.
Some searching turned up issue 36793: "Do not define unneeded __str__ equal to 
__repr__" .
As can be seen, `__str__` is needed for inheritance to work properly. Thoughts 
on reverting that patch?
--
~Ethan~
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/GLHE6CJ3IEHPUTA36YWOF5FSDLYNIOCV/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to