1# mode: run 2# ticket: 671 3 4A = 1234 5 6class SimpleAssignment(object): 7 """ 8 >>> SimpleAssignment.A 9 1234 10 """ 11 A = A 12 13class SimpleRewrite(object): 14 """ 15 >>> SimpleRewrite.A 16 4321 17 """ 18 A = 4321 19 A = A 20 21def simple_inner(a): 22 """ 23 >>> simple_inner(4321).A 24 1234 25 """ 26 A = a 27 class X(object): 28 A = A 29 return X 30 31def conditional(a, cond): 32 """ 33 >>> conditional(4321, False).A 34 1234 35 >>> conditional(4321, True).A 36 4321 37 """ 38 class X(object): 39 if cond: 40 A = a 41 A = A 42 return X 43 44def name_error(): 45 """ 46 >>> name_error() #doctest: +ELLIPSIS 47 Traceback (most recent call last): 48 ... 49 NameError: ...B... 50 """ 51 class X(object): 52 B = B 53 54def conditional_name_error(cond): 55 """ 56 >>> conditional_name_error(True).B 57 4321 58 >>> conditional_name_error(False).B #doctest: +ELLIPSIS 59 Traceback (most recent call last): 60 ... 61 NameError: ...B... 62 """ 63 class X(object): 64 if cond: 65 B = 4321 66 B = B 67 return X 68 69C = 1111 70del C 71 72def name_error_deleted(): 73 """ 74 >>> name_error_deleted() #doctest: +ELLIPSIS 75 Traceback (most recent call last): 76 ... 77 NameError: ...C... 78 """ 79 class X(object): 80 C = C 81 82_set = set 83 84def name_lookup_order(): 85 """ 86 >>> Scope = name_lookup_order() 87 >>> Scope().set(2) 88 42 89 >>> Scope.test1 == _set() 90 True 91 >>> Scope.test2 == _set() 92 True 93 94 """ 95 class Scope(object): 96 test1 = set() 97 test2 = set() 98 99 def set(self, x): 100 return 42 101 102 return Scope 103