CSC/ECE 517 Spring 2014/ch1 1w1l m: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
(→‎What is a closure?: Tried to shorten closure example)
(→‎What is a closure?: A bit more trimming of closure example)
Line 7: Line 7:


<code>
<code>
#!/usr/bin/env python
  def closure_builder(message="Default"):
  def closure_builder(message="Default"):
     def closure():
     def closure():

Revision as of 07:12, 23 February 2014

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.

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 />