2018-07-03 | Paul Boddie | raw annotate files changeset graph | Take advantage of context testing when acquiring functions for invocation. Since a context whose nature has been determined will have been tested, either as a consequence of deduction or at run-time, use of __get_function (which tests the context again) is unnecessary. |
1 class C: 2 def f(self, x, y, z): 3 return z 4 5 class D: 6 def f(self, a, b, c): 7 return c 8 9 def xyz(obj): 10 return obj.f(1, 2, z=3) 11 12 def abc(obj): 13 return obj.f(4, 5, c=6) 14 15 c = C() 16 d = D() 17 18 print xyz(c) # 3 19 print abc(d) # 6 20 21 try: 22 print xyz(d) # should raise an exception 23 except TypeError: 24 print "xyz(d): argument cannot be used"