| # Augmented assignment test. |
| |
| x = 2 |
| x += 1 |
| x *= 2 |
| x **= 2 |
| x -= 8 |
| x /= 2 |
| x %= 12 |
| x &= 2 |
| x |= 5 |
| x ^= 1 |
| |
| print x |
| |
| x = [2] |
| x[0] += 1 |
| x[0] *= 2 |
| x[0] **= 2 |
| x[0] -= 8 |
| x[0] /= 2 |
| x[0] %= 12 |
| x[0] &= 2 |
| x[0] |= 5 |
| x[0] ^= 1 |
| |
| print x |
| |
| x = {0: 2} |
| x[0] += 1 |
| x[0] *= 2 |
| x[0] **= 2 |
| x[0] -= 8 |
| x[0] /= 2 |
| x[0] %= 12 |
| x[0] &= 2 |
| x[0] |= 5 |
| x[0] ^= 1 |
| |
| print x[0] |
| |
| x = [1,2] |
| x += [3,4] |
| x *= 2 |
| |
| print x |
| |
| x = [1, 2, 3] |
| y = x |
| x[1:2] *= 2 |
| y[1:2] += [1] |
| |
| print x |
| print x is y |
| |
| class aug_test: |
| def __init__(self, value): |
| self.val = value |
| def __radd__(self, val): |
| return self.val + val |
| def __add__(self, val): |
| return aug_test(self.val + val) |
| |
| |
| class aug_test2(aug_test): |
| def __iadd__(self, val): |
| self.val = self.val + val |
| return self |
| |
| class aug_test3(aug_test): |
| def __iadd__(self, val): |
| return aug_test3(self.val + val) |
| |
| x = aug_test(1) |
| y = x |
| x += 10 |
| |
| print isinstance(x, aug_test) |
| print y is not x |
| print x.val |
| |
| x = aug_test2(2) |
| y = x |
| x += 10 |
| |
| print y is x |
| print x.val |
| |
| x = aug_test3(3) |
| y = x |
| x += 10 |
| |
| print isinstance(x, aug_test3) |
| print y is not x |
| print x.val |
| |
| class testall: |
| |
| def __add__(self, val): |
| print "__add__ called" |
| def __radd__(self, val): |
| print "__radd__ called" |
| def __iadd__(self, val): |
| print "__iadd__ called" |
| return self |
| |
| def __sub__(self, val): |
| print "__sub__ called" |
| def __rsub__(self, val): |
| print "__rsub__ called" |
| def __isub__(self, val): |
| print "__isub__ called" |
| return self |
| |
| def __mul__(self, val): |
| print "__mul__ called" |
| def __rmul__(self, val): |
| print "__rmul__ called" |
| def __imul__(self, val): |
| print "__imul__ called" |
| return self |
| |
| def __div__(self, val): |
| print "__div__ called" |
| def __rdiv__(self, val): |
| print "__rdiv__ called" |
| def __idiv__(self, val): |
| print "__idiv__ called" |
| return self |
| |
| def __mod__(self, val): |
| print "__mod__ called" |
| def __rmod__(self, val): |
| print "__rmod__ called" |
| def __imod__(self, val): |
| print "__imod__ called" |
| return self |
| |
| def __pow__(self, val): |
| print "__pow__ called" |
| def __rpow__(self, val): |
| print "__rpow__ called" |
| def __ipow__(self, val): |
| print "__ipow__ called" |
| return self |
| |
| def __or__(self, val): |
| print "__or__ called" |
| def __ror__(self, val): |
| print "__ror__ called" |
| def __ior__(self, val): |
| print "__ior__ called" |
| return self |
| |
| def __and__(self, val): |
| print "__and__ called" |
| def __rand__(self, val): |
| print "__rand__ called" |
| def __iand__(self, val): |
| print "__iand__ called" |
| return self |
| |
| def __xor__(self, val): |
| print "__xor__ called" |
| def __rxor__(self, val): |
| print "__rxor__ called" |
| def __ixor__(self, val): |
| print "__ixor__ called" |
| return self |
| |
| def __rshift__(self, val): |
| print "__rshift__ called" |
| def __rrshift__(self, val): |
| print "__rrshift__ called" |
| def __irshift__(self, val): |
| print "__irshift__ called" |
| return self |
| |
| def __lshift__(self, val): |
| print "__lshift__ called" |
| def __rlshift__(self, val): |
| print "__rlshift__ called" |
| def __ilshift__(self, val): |
| print "__ilshift__ called" |
| return self |
| |
| x = testall() |
| x + 1 |
| 1 + x |
| x += 1 |
| |
| x - 1 |
| 1 - x |
| x -= 1 |
| |
| x * 1 |
| 1 * x |
| x *= 1 |
| |
| x / 1 |
| 1 / x |
| x /= 1 |
| |
| x % 1 |
| 1 % x |
| x %= 1 |
| |
| x ** 1 |
| 1 ** x |
| x **= 1 |
| |
| x | 1 |
| 1 | x |
| x |= 1 |
| |
| x & 1 |
| 1 & x |
| x &= 1 |
| |
| x ^ 1 |
| 1 ^ x |
| x ^= 1 |
| |
| x >> 1 |
| 1 >> x |
| x >>= 1 |
| |
| x << 1 |
| 1 << x |
| x <<= 1 |