what is composition in python
# It's when a class has a (is made-of) another class.
# Example
class Thing(object):
def func(self):
print("Function ran from class Thing().")
class OtherThing(object): # Note that I don't use inheritance to get the func() function
def __init__(self):
self.thing = Thing() # Setting the composition, see how this class has-a another class in it?
def func(self):
self.thing.func() # Just runs the function in class Thing()
def otherfunc(self):
print("Function ran from class OtherThing().")
random_object = OtherThing()
random_object.func() # Still works, even though it didn't inherit from class Thing()
random_object.otherfunc()
# Function to add 2
# to a number
def add(x):
return x + 2
# Function to multiply
# 2 to a number
def multiply(x):
return x * 2
# Printing the result of
# composition of add and
# multiply to add 2 to a number
# and then multiply by 2
print("Adding 2 to 5 and multiplying the result with 2: ",
multiply(add(5)))