Moose2
0
Q:

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()
0
In composition one of the classes is composed of one or more instance of other classes. In other words one class is container and other class is content and if you delete the container object then all of its contents objects are also deleted
0
# 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))) 
0

New to Communities?

Join the community