On Apr 22, 4:36 am, "Steven W. Orr" <[EMAIL PROTECTED]> wrote: > When I go to create an object I want to be able to decide whether the > object is valid or not in __init__, and if not, I want the constructor to > return something other than an object, (like maybe None). I seem to be > having problems. At the end of __init__ I say (something like) > > if self.something < minvalue: > del self > return None > > and it doesn't work. I first tried just the return None, then I got crafty > and tried the del self. Is what I'm trying to do possible in the > constructor or do I have to check after I return? Or would raising an > exception in the constructor be appropriate?
You can raise an exception of course but it would just create a side effect. Another way to achieve what you request for is manipulating the class creation mechanism. class A(object): def __new__(cls, x): if x == 0: return None obj = object.__new__(cls) obj.__init__(x) return obj class B(A): def __init__(self, x): self.x = x The condition can always be checked within the static __new__ method. Kay -- http://mail.python.org/mailman/listinfo/python-list