“Variable scoping” is one of those phrases that’s almost guaranteed to put most software developers to sleep. And yet, it’s vitally important to understand the rules for scoping in the language you’re using.

The good news is that Python’s scoping rules are simple and elegant. But they’re also different from other languages, and tend to confuse many developers. Indeed, I’ve found that even experienced Python developers are surprised and confused by the scoping rules, and cannot articulate them well.

To help these people, I’ve created a free e-mail course about Python scoping. Every day, you’ll get a new lesson sent to you about the four Python variable scopes: Local, enclosing, global, and builtins.

When you finish the course, you’ll understand what’s involved, and both when how to use these scopes.