A module is just a Python file with a set of functions that us usually not used by itself. For example the "my_calculator.py".

def add(a, b):
    return a + b

A user made module is loaded exactly the same way as the built-in module. The functions defined in the module are used as if they were methods.

from __future__ import print_function
import my_calculator

print(my_calculator.add(2, 3))  # 5

We can import specific functions to the current name space (symbol table) and then we don't need to prefix it with the name of the file every time we use it. This might be shorter writing, but if we import the same function name from two different modules then they will overwrite each other. So I usually prefer loading the module as in the previous example.

from __future__ import print_function
from my_calculator import add

print(add(2, 3))  # 5