Class Methods
Methods are functions defined inside the body of a class. They are performed operations with the attributes of our objects.
Methods are essential in the encapsulation concept of the OOP paradigm. For example, we might have a connect method in our ConnectDatabase class. We need not be informed how exactly the method connects to the database. We only know that it is used to connect to a database. This is essential in dividing responsibilities in programming, especially in large applications.
# methods.py
class Circle:
pi = 3.141592
def __init__(self, radius=1):
self.radius = radius
def area(self):
return self.radius * self.radius * Circle.pi
def setRadius(self, radius):
self.radius = radius
def getRadius(self):
return self.radius
c = Circle()
c.setRadius(5)
print(c.getRadius())
print(c.area())In the code example, we have a Circle class. We define three new methods.
def area(self):
return self.radius * self.radius * Circle.piThe area method returns the area of a circle.
def setRadius(self, radius):
self.radius = radiusThe setRadius method sets a new value for the radius attribute.
def getRadius(self):
return self.radiusThe getRadius method returns the current radius.
c.setRadius(5)The method is called on an instance object. The c object is paired with the self parameter of the class definition. The number 5 is paired with the radius parameter.
$ ./methods.py
5
78.5398In Python, we can call methods in two ways. There are bounded and unbounded method calls.
# bound_unbound_methods.py
class Methods:
def __init__(self):
self.name = 'Methods'
def getName(self):
return self.name
m = Methods()
print(m.getName())
print(Methods.getName(m))In this example, we demonstrate both method calls.
print(m.getName())This is the bounded method call. The Python interpreter automatically pairs the m instance with the self parameter.
print(Methods.getName(m))And this is the unbounded method call. The instance object is explicitly given to the getName method.
$ ./bound_unbound_methods.py
Methods
MethodsLast updated