George Nyoro wrote:
class Table:
def delete_this(self):
#code to delete this object or assign it null or None
pass
def do_something(self):
pass
x=Table()
x.delete_this()
#at this point, I want such that if I try to use x I get some sort of error
e.g.
x.do_something()
#Error: x is definitely not an object anymore
Instead of "x.delete_this()", why not just say "del x"? Why try to fight
Python, instead of using the tools Python already gives you?
Objects cannot delete themselves, because they cannot know all the places they
are referenced.
If you absolutely have to have something like x.delete_this, then try this:
class Table:
def __init__(self):
self.alive = True
def delete_this(self):
self.alive = False
def do_something(self):
if self.alive:
print("Doing something.")
else:
raise TableError("object has been killed")
class TableError(RuntimeError):
pass
--
Steven
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor