1# ticket: 489 2 3""" 4>>> xxx 5[0, 1, 2, 3] 6""" 7 8xxx = [] 9foo = 0 10xxx.append(foo) 11def foo(): 12 return 1 13xxx.append(foo()) 14def foo(): 15 return 2 16xxx.append(foo()) 17foo = 3 18xxx.append(foo) 19 20def closure_scope(a): 21 """ 22 >>> closure_scope(0) 23 [0, 1, 'X', -4, 3] 24 """ 25 ret = [] 26 foo = a + 0 27 ret.append(foo) 28 def foo(): 29 return a + 1 30 ret.append(foo()) 31 def foo(): 32 return 'X' 33 ret.append(foo()) 34 def foo(b): 35 return a - b 36 ret.append(foo(4)) 37 foo = a + 3 38 ret.append(foo) 39 return ret 40 41class ClassScope(object): 42 """ 43 >>> obj = ClassScope() 44 [0, 1, 2, 3] 45 """ 46 x = [] 47 def __init__(self): 48 r = [] 49 for x in self.x: 50 if isinstance(x, int): 51 r.append(x) 52 else: 53 r.append(x(self)) 54 print r 55 foo = 0 56 x.append(foo) 57 def foo(self): 58 return 1 59 x.append(foo) 60 def foo(self): 61 return 2 62 x.append(foo) 63 foo = 3 64 x.append(foo) 65