2016-10-20 | Paul Boddie | raw annotate files changeset graph | Added some more support for generating invocation code, distinguishing between static invocation targets that are identified and whose functions can be obtained directly and other kinds of targets whose functions must be obtained via the special attribute. |
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)