12.1 Why Use Functions?
Before going into the details, let's get a clear
picture of what functions are about. Functions are a nearly universal
program-structuring device. Most of you have probably come across
them before in other languages, where they may have been called
subroutines or procedures. But as a brief introduction, functions
serve two primary development roles:
- Code reuse
-
As in most programming languages, Python functions
are the simplest way to package
logic
you may wish to use in more than one place and
more than one time. Up until now, all the code we've
been writing runs immediately; functions allow us to group and
generalize code to be used arbitrarily many times later.
- Procedural decomposition
-
Functions also provide a tool for splitting systems into pieces that
have a well- defined role. For instance, to make a pizza from
scratch, you would start by mixing the dough, rolling it out, adding
toppings, baking, and so on. If you were programming a pizza-making
robot, functions would help you divide the overall
"make pizza" task into
chunks—one function for each subtask in the process.
It's easier to implement the smaller tasks in
isolation than it is to implement the entire process at once. In
general, functions are about procedure—how to do something,
rather than what you're doing it to.
We'll see why this distinction matters in Part VI.
In this part of the book, we explore the tools used to code functions
in Python: function basics, scope rules, and argument passing, along
with a few related concepts. As we'll see, functions
don't imply much new syntax, but they do lead us to
some bigger programming ideas.
|