Lichen

tests/contexts.py

934:2989aab1b4f7
13 months ago Paul Boddie Renamed the utf8string class to unicode, eliminating the unicode function. This means that the simple case of merely returning an object if it is already a Unicode object no longer occurs when using the unicode callable, but such behaviour might be better supported with more general customised instantiation functionality.
     1 class C:     2     l = [2, 4, 6, 8, 10]     3     s = "test"     4     def __init__(self, x):     5         self.x = x     6         self.y = 3     7         self.z = "zebra libre"     8     def __len__(self):     9         return len(self.z)    10     11 c = C([1])    12 x = c.x    13 f = c.x.__len__    14 print c             # <__main__.C instance>    15 print x             # [1]    16 print f             # __builtins__.list.list.__len__    17 print f()           # 1    18     19 y = c.l    20 g = c.l.__len__    21 print y             # [2, 4, 6, 8, 10]    22 print g             # __builtins__.list.list.__len__    23 print g()           # 5    24     25 yy = C.l    26 gg = C.l.__len__    27 print yy            # [2, 4, 6, 8, 10]    28 print gg            # __builtins__.list.list.__len__    29 print gg()          # 5    30     31 z = c.s    32 h = c.s.__len__    33 print z             # test    34 print h             # __builtins__.str.basestring.__len__    35 print h()           # 4    36     37 zz = C.s    38 hh = C.s.__len__    39 print zz            # test    40 print hh            # __builtins__.str.basestring.__len__    41 print hh()          # 4    42     43 a = c.y    44 b = c.z    45 i = c.z.__len__    46 print a             # 3    47 print b             # zebra libre    48 print i             # __builtins__.str.basestring.__len__    49 print i()           # 11    50     51 j = C.__len__    52 k = get_using(j, c)    53 try:    54     print j()    55 except UnboundMethodInvocation:    56     print "j(): invocation of method with class context"    57 print k()           # 11