Category Archives: Blog
Object lifetime in Python
Wikipedia says, ” In computer science, the object lifetime (or life cycle) of an object in object-oriented programming is the time between an object’s creation (also known as instantiation or construction) till the object is no longer used, and is destructed or freed. “
Typically, an object goes through the following phases during it’s lifetime:
- Allocating memory space
- Binding or associating methods
- Initialization
- Destruction
Similar is the case with Python (ofcourse, the programming constructs used would be different because of language semantics). Let’s see what happens in Python.
Step1: Definition
Python defines its classes with keywowd ’class’ which is defined in Python interpretor.
Step2: Initialization
When an instance of the class is created, __init__ method defined in the class is called. It initializes the attributes for newly created class instance. A namespace is also allocated for object’s instance variables.
Step3: Access and Manipulation
Methods defined in a class can be used for accessing or modifying the state of an object. These are accessors and manipulators respectively. A class instance is used to call these methods.
Step4: Destrcution
Every object that gets created, needs to be destroyed. This is done with Python garbage collection (that is reference counting).
Let’s take an example of sample code
## Definition class Add: ## Initialization def __init__(self,a,b): self.a = a self.b = b def add(self): return self.a+self.b obj = Add(3,4) ## Access print obj.add() ## Garbage collection