7.12小节完成~

This commit is contained in:
XiongNeng
2015-01-26 17:42:38 +08:00
parent 2ae259abd3
commit 64e0a3088b

View File

@@ -29,3 +29,38 @@ f = sample()
f()
f.set_n(10)
f()
import sys
class ClosureInstance:
def __init__(self, locals=None):
if locals is None:
locals = sys._getframe(1).f_locals
# Update instance dictionary with callables
self.__dict__.update((key,value) for key, value in locals.items()
if callable(value) )
# Redirect special methods
def __len__(self):
return self.__dict__['__len__']()
# Example use
def Stack():
items = []
def push(item):
items.append(item)
def pop():
return items.pop()
def __len__():
return len(items)
return ClosureInstance()
s = Stack()
print(s)
s.push(10)
s.push(20)
print(len(s))
print(s.pop())
print(s.pop())