Lichen

tests/name_attribute.py

544:8df59b6c2c68
2017-02-05 Paul Boddie Fixed internal mapping methods to accept explicit bucket sequences, preventing confusion when searching for entries in one set of buckets while attempting to populate another. Implemented various dictionary and set methods. Added set iteration support. Expanded the test of sets.
     1 import operator     2      3 class C:     4     def f(self): pass     5      6 def name(x):     7     print x.__name__     8     print x.__parent__.__name__     9     print str(x)    10     11 def attrname(x):    12     print x.f.__name__    13     print x.f.__parent__.__name__    14     print str(x.f)    15     16 c = C()    17 print c.__name__                        # C    18 print c.__parent__.__name__             # __main__    19 print str(c)                            # <__main__.C instance>    20 print C.__name__                        # C    21 print C.__parent__.__name__             # __main__    22 print str(C)                            # __main__.C    23 print c.f.__name__                      # f    24 print c.f.__parent__.__name__           # C    25 print str(c.f)                          # __main__.C.f    26 print C.f.__name__                      # f    27 print C.f.__parent__.__name__           # C    28 print str(C.f)                          # __main__.C.f    29     30 name(c)                                 # C    31                                         # __main__    32                                         # <__main__.C instance>    33 name(C)                                 # C    34                                         # __main__    35                                         # __main__.C    36 attrname(c)                             # f    37                                         # C    38                                         # __main__.C.f    39 attrname(C)                             # f    40                                         # C    41                                         # __main__.C.f    42 name(c.f)                               # f    43                                         # C    44                                         # __main__.C.f    45 name(C.f)                               # f    46                                         # C    47                                         # __main__.C.f    48     49 # If it were defined, operator.__name__ would be module.    50     51 print operator.__name__                 # operator    52     53 # If it were defined, operator.add.__name__ would be function.    54     55 print operator.add.__name__             # add    56 print operator.add.__parent__.__name__  # operator.binary