Any text file with .py extension and containing Python code is basically a module. Different Python objects such as functions, classes, variables, constants etc. defined in one module can be made available to interpreter session or another Python script by using import statement. Functions defined in built-in modules need to be imported before use. On similar lines, a custom module may have one or more user defined Python objects in it. These objects can be imported in interpreter session or another script.
If the programming algorithm requires defining a lot of functions and classes, they are logically organised in modules. One module stores classes, functions and other resources of similar relevance. Such a modular structure of the code makes it easy to understand, use and maintain.