Python, like many programming languages, has functions. A function is a block of code you can call to run that code. Code that's inside a function isn't executed until you call the function.
Python comes with many built-in functions, but you can also define your own functions with the def
statement.
Pretty much every Python Morsels exercise will involve writing at least one function.
Python's functions often have a lot of "wait I didn't know that" features.
You can specify default arguments when defining a function, you can use keyword arguments when calling a function, you can capture any number of arguments given to your function using the *
and **
operators, and you can define "keyword-only arguments" using *
also.
Python has first-class functions, which means functions are just another object in Python: our functions can be passed into or returned from other functions. You can even write a function that creates another function.
A "lambda function" is Python's flavor of an anonymous function. I try to avoid using lambda expressions personally.
We often use the word callable in Python to refer to something which can be called.
A function is a callable but a class is also a callable (you can use parenthesis, ()
, to call either one).
We also frequently use the word "function" to refer to classes (and sometimes other callable non-functions).
Almost one-third of the Python built-in functions are actually classes (str
, int
, list
, zip
, bool
, enumerate
are all classes for example).
You'll also hear the word "method" used in Python. A "method" is a function that lives on a class (see the classes section below).
Recursion is also something we use occasionally in Python, but we typically only use it in a few specific classes of problems (often iterating over arbitrarily nested data structures).
Need to fill-in gaps in your Python skills?
Sign up for my Python newsletter where I share one of my favorite Python tips every week.
Need to fill-in gaps in your Python skills? I send weekly emails designed to do just that.