CSC/ECE 517 Spring 2014/ch1 1w1l m

From Expertiza_Wiki
Revision as of 07:12, 23 February 2014 by Drfarrel (talk | contribs) (→‎What is a closure?: Tried to shorten 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

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")

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

Examples

Narration

Links to Important Terms

References

<references />