Skip to content

Instantly share code, notes, and snippets.

@johnynek
Created January 19, 2012 18:05
Show Gist options
  • Save johnynek/1641512 to your computer and use it in GitHub Desktop.
Save johnynek/1641512 to your computer and use it in GitHub Desktop.
Example of closures in Python
#!/usr/bin/env python
#closures are a poor man's object (and vice-versa)
# http://okmij.org/ftp/Scheme/oop-in-fp.txt
class StoresStuff:
def __init__(self, member):
self.member = member
def poorMansObject(init_member):
s = StoresStuff(init_member)
def getter():
return s.member
def setter(v):
s.member = v
return (getter, setter)
(my_get, my_set) = poorMansObject(5)
assert my_get() == 5
my_set(4)
assert my_get() == 4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment