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()