2017-02-20 | Paul Boddie | raw annotate files changeset graph | Simplify name selection for usage tracking, eliminating static object paths as names. Such paths are unlikely to refer to anything different from globals, and even then are effectively equivalent to globals for tracking purposes. |
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"