How to Delete an Instantiated Object Python?

How to Delete an Instantiated Object Python?

I am relatively new to object oriented programming and I cannot figure out how to delete an instantiated object in Python.

if self.hit_paddle(pos) == True or self.hit_paddle2(pos) == True:
    bar = bar + 1
if bar == 1:
    global barbox1
    barbox1 = barfill(canvas)
    barbox1.canvas.move(barbox1.id, 253, 367)
if bar == 2:
    global barbox2
    barbox2 = barfill(canvas)
    barbox2.canvas.move(barbox5.id, 413, 367)
    bar = 0
    time.sleep(0.2)
    barbox1 = None
    barbox2 = None

That is the code, the main thing I was trying in order to delete the objects was barbox1 = None, but that doesn't seem to work.

4

2 Answers

object.__del__(self) is called when the instance is about to be destroyed.

>>> class Test:
...     def __del__(self):
...         print "deleted"
... 
>>> test = Test()
>>> del test
deleted

Object is not deleted unless all of its references are removed(As quoted by ethan)

Also, From Python official doc reference:

del x doesn’t directly call x.__del__() — the former decrements the reference count for x by one, and the latter is only called when x‘s reference count reaches zero

5

What do you mean by delete? In Python, removing a reference (or a name) can be done with the del keyword, but if there are other names to the same object that object will not be deleted.

--> test = 3
--> print(test)
3
--> del test
--> print(test)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'test' is not defined

compared to:

--> test = 5
--> other is test  # check that both name refer to the exact same object
True
--> del test       # gets rid of test, but the object is still referenced by other
--> print(other)
5
3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

David Miller
Author

David Miller

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.