I have a class that has a distinct "empty" state. In the empty state, it shouldn't have any data attributes, but it should still have methods.
The analogy is with a list: an empty list still has methods like append() etc. but it has no "data", if by data you mean items in the list. I can construct an empty instance in the __new__ constructor, and I can initialize an non-empty instance in the __init__ initializer, but I can't think of any good way to stop __init__ from being called if the instance is empty. In pseudo-code, I want to do something like this: class Parrot(object): def __new__(cls, data): construct a new empty instance if data is None: return that empty instance else: call __init__ on the instance to populate it return the non-empty instance but of course __init__ is automatically called. Any suggestions for doing something like this? -- Steven -- http://mail.python.org/mailman/listinfo/python-list