2016-11-23 | Paul Boddie | raw annotate files changeset graph | Produce a proper error when too many arguments are given for an invocation. |
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 print result[0] 21 print result[1] 22 print result[2] 23 assert result == (3, 2, 4)