CSC/ECE 517 Spring 2014/ch1 1w1l m

From Expertiza_Wiki
Revision as of 07:11, 23 February 2014 by Drfarrel (talk | contribs) (Somewhat better closure example)
Jump to navigation Jump to search

Design Patterns Involving Closures

Background

What is a closure?

Very simply, a closure is a function that can use a variable that was valid within the scope that the closure was defined, but need not be in-scope where the closure is called. A quick example is very illustrative.

#!/usr/bin/env python

# Define a function that makes use of closures
def closure_builder(message="Default"):
    def closure():
        # Message is in-scope here
        print message
    return closure

# Build two functions
default_closure = closure_builder()
custom_closure = closure_builder("Custom")

# In case you're not convinced
del closure_builder

# Call the closures you built
default_closure()  # Amazingly, prints "Default"
custom_closure()  # Amazingly, prints "Custom"

Examples

Narration

Links to Important Terms

References

<references />