You should avoid this. The documentation does not have an exhaustive list of things that you should not do, but it says what needs to be done __new__ : return an instance of the class.
If you do not want to return a new object in some cases, throw an exception.
Glenn maynard
source share