2016-10-13 | Paul Boddie | raw annotate files changeset graph | Fixed instruction plan test operations, optimised the initial accessor to avoid redundant assignments and to use the context where appropriate, introduced accessor and attribute name parameterisation in the generated instructions, introduced a generic expression placeholder in place of any local name. |
1 class C: 2 def c(self): 3 return 1 4 5 class D: 6 def d(self): 7 return 3 8 9 a = 4 10 11 def f(x): 12 x.c() 13 def g(y, x=x): # x must be introduced as default here 14 if y: 15 x = D() 16 return x.d(), y, a # UnboundLocalError in Python (if y is a false value) 17 return g 18 19 result = f(C())(2) 20 assert result == (3, 2, 4)