When a function is defined, it is represented as a first-class object in Python, with its own set of functions

First-class object

A first-class object is an object with no restrictions. It can be dynamically created, destroyed, passed to a function etc. just like any other variable