Lichen

tests/operator_support.py

583:aed28d04304d
2017-02-13 Paul Boddie Re-added size information to string instances as the __size__ attribute. This fixes problems introduced when using strlen on data likely to contain embedded nulls, which was the reason for having size information explicitly stored in the first place. attr-strvalue-without-size
     1 class A:     2     def __init__(self, x):     3         self.x = x     4     def __sub__(self, other):     5         return self.x - other.x     6      7 class B:     8     def __init__(self, x):     9         self.x = x    10     def __rsub__(self, other):    11         return other.x - self.x    12     13 class C:    14     def __init__(self, x):    15         self.x = x    16     17 a = A(10)    18 b = B(5)    19 c = C(3)    20     21 print a - b                         # 5    22 print c - b                         # -2    23 print a - c                         # 7    24     25 try:    26     print b - c                     # should raise an exception    27 except TypeError:    28     print "b - c: b and c do not respectively support the __sub__ and __rsub__ operations"