Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Open
Description
Bug report
Bug description:
I noticed the error messages between magic methods like__int__
and__float__
were inconsistent. This seems like slightly undesirable behavior to me. I used the following code to generate many of them.
classFoo:def__int__(self):returnNonedef__float__(self):returnNonedef__bytes__(self):returnNonedef__complex__(self):returnNonedef__bool__(self):returnNonedef__str__(self):returnNonetry:int(Foo())exceptExceptionase:print(e)try:float(Foo())exceptExceptionase:print(e)try:bytes(Foo())exceptExceptionase:print(e)try:complex(Foo())exceptExceptionase:print(e)try:bool(Foo())exceptExceptionase:print(e)try:str(Foo())exceptExceptionase:print(e)
And the output is as follows:
__int__returnednon-int (typeNoneType)Foo.__float__returnednon-float (typeNoneType)__bytes__returnednon-bytes (typeNoneType)__complex__returnednon-complex (typeNoneType)__bool__shouldreturnbool,returnedNoneType__str__returnednon-string (typeNoneType)
The first issue I've made, but seems like a reasonable bug. I'm not sure if there are other "type-conversion" magic methods out there that aren't consistent.
CPython versions tested on:
3.13, 3.12
Operating systems tested on:
Windows