tobiah wrote:
> I should have made it more clear that Foo is a class:
>
>
> class Foo:
>
>       def __init__(self, *args):
>
>               for arg in args:
>                       if is_fruit(arg):
>                               del(self)
>
>
>
> tobiah wrote:
> > Suppose I do:
> >
> >
-*> > myfoo = Foo('grapes', 'oranges')
> >
> > And in the __init__() of Foo, there is
> > a real problem with the consumption of fruit.
> > Is there a clean way to ensure that myfoo
> > will be None after the call?  Would the
> > __init__() just do del(self), or is there
> > a better way to think about this?
> >

Yes. Raise an exception, with details of what the problem is -- which
arg? what (out of multiple possible problems) is wrong with it?

if self.is_fruit(arg):
    raise FooError("I don't eat fruit: %r" % arg)
if self.some_other_problem(arg):
    raise FooError("Some other problem: %r" % arg)

HTH,
John

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to