micropython

tests/methods.py

215:626da7ae6d5e
2009-05-17 Paul Boddie Moved argument checking inside functions, changing the role of CheckFrame and introducing a separate FillDefaults instruction. Introduced a JumpWithFrameDirect instruction which is able, in conjunction with a new code_body_location attribute on Function and Class instances (for function bodies and class instantiator bodies respectively), to skip argument checking for invocations which could be checked at compile-time. Removed the invocation details from the common object structure. Improved various tests.
     1 #!/usr/bin/env python     2      3 class B:     4     def f(self):     5         pass     6      7 def f(self):     8     pass     9     10 b = B()    11     12                         # on A          on a    13 class A:    14     f1 = f              # unbound (A)   bound (a)    15     f2 = B.f            # unbound (B)   unbound (B)    16     f3 = b.f            # bound (b)     bound (b)    17     18     def __init__(self):    19         self.f4 = f     # N/A           function    20         self.f5 = B.f   # N/A           unbound (B)    21         self.f6 = b.f   # N/A           bound (b)    22     23     def m(self):    24         x = self.f1         # should use optimised attribute access    25         x = self.f2    26         x = self.f3    27         x = self.f4    28         x = self.f5    29         x = self.f6    30     31 a = A()    32 a.m()    33     34 A.f1    35 A.f2    36 A.f3    37 a.f1    38 a.f2    39 a.f3    40 a.f4    41 a.f5    42 a.f6    43     44 # vim: tabstop=4 expandtab shiftwidth=4