On 11/4/19 10:36 AM, Luciano Ramalho wrote:
Sorry, I responded only to the OP. My response:

"""A failed __init__ should raise an appropriate exception. A bare
return or returning None is what any __init__ is expected to do in the
normal case, so it signals success."""

Actually, the Python interpreter *does* check the return of __init__.
If it is anything other than None, Python 3 raises TypeError when you
try to create an instance:

class X:
...        def __init__(self):
...            return 1
...
x = X()
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
TypeError: __init__() should return None, not 'int'

Cheers,

Luciano


On Mon, Nov 4, 2019 at 2:31 PM Rob Gaddi
<rgaddi@highlandtechnology.invalid> wrote:
>> [snip]
Raise an exception.  Returning None will specifically NOT accomplish the thing
you want; nothing ever checks the return value of __init__.


I'll be damned; you're right.  Learn something new every day.

--
Rob Gaddi, Highland Technology -- www.highlandtechnology.com
Email address domain is currently out of order.  See above to fix.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to