Lichen

tests/operator_support.py

934:2989aab1b4f7
7 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 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"