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