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 function g
as argument, make sure that f
has exactly the form described in the docstring of g
.
The docstring of fsolve
gives information about its func
parameter:
func -- A Python function or...