All pastes #991509 Raw Edit

Something

public python v1 · immutable
#991509 ·published 2008-04-21 02:22 UTC
rendered paste body
class DestroyError(Exception):    passdef IsDestroyed(obj):    try:        object.__getattribute__(obj, "_destroyed")        return True    except AttributeError:        return Falseclass DestroyableObject(object):    def __getattribute__(self, k):        if IsDestroyed(self):            raise DestroyError("Reading from a destroyed object.")        return object.__getattribute__(self, k)    def __setattr__(self, k, v):        if IsDestroyed(self):            raise DestroyError("Writing to a destroyed object.")        object.__setattr__(self, k, v)    def __del__(self):        if not IsDestroyed(self):            raise DestroyError("Deleting a non-destroyed object")    def destroy(self):        self._destroyed = True