What is the difference between inheritance and a function in python code example

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