[Tutor] A class that instantiates conditionally ?

Hugo Arts hugo.yoshi at gmail.com
Tue Mar 1 18:06:28 CET 2011


On Tue, Mar 1, 2011 at 5:35 PM, Alan Gauld <alan.gauld at btinternet.com> wrote:
>
> "David" <bouncingcats at gmail.com> wrote
>
>> clever enough to refuse to instantiate itself if a necessary condition
>> is not met.
>
> Oops, sent too soon.
>
> I meant to add that you should realize that the implication of your
> design is that the user of the class now has to check each object
> to see if it is a valid reference or None. You could raise an exception
> instead of returning None which allows a try/except style...
>
> This extra overhead is one reason these kinds of "clever" tricks
> are usually avoided. A valid object with null content is often
> preferrable, or a singleton style pattern. But occasionally your
> style is needed, just be aware of the extra overhead you
> introduce by using it.
>

Side question: Any reason why you'd raise the exception from __new__
rather than __init__? If you want to return None, then yeah I can see
why you'd have to use __new__, but would there be any reason you can't
or shouldn't simply raise an exception from __init__?


More information about the Tutor mailing list