Functions are objects

Functions are objects, like everything else in Python. One may pass functions as arguments, change their names, or delete them. For example:

def square(x):
    """
    Return the square of x
    """
    return x ** 2
square(4) # 16
sq = square # now sq is the same as square
sq(4) # 16
del square # square doesn't exist anymore
print(newton(sq, .2)) # passing as argument

Passing functions as arguments is very common when applying algorithms in scientific computing. The functions fsolve  in scipy.optimize for computing a zero of a given function or quad in scipy.integrate for computing integrals are typical examples.

A function itself can have a different number of arguments with differing types. So, when passing your function f to another ...

Get Scientific Computing with Python 3 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.