#!/usr/bin/env python

class Special():

    def __init__(self, value):
        self._value = str(value)  # <1>

    def __add__(self, other):  # <2>
        return self._value + other._value

    def __mul__(self, num):  # <3>
        return ''.join((self._value for i in range(num)))

    def __str__(self):  # <4>
        return self._value.upper()

    def __eq__(self, other):  # <5>
        return self._value == other._value


if __name__ == '__main__':
    s = Special('spam')
    t = Special('eggs')
    u = Special\
        ('spam')
    v = Special(5)  # <6>
    w = Special(22)

    print("s + s", s + s)  # <7>
    print("s + t", s + t)
    print("t + t", t + t)
    print("s * 10", s * 10)  # <8>
    print("t * 3", t * 3)
    print("str(s)={}  str(t)={}".format(str(s), str(t)))
    print("id(s)={} id(t)={} id(u)={}".format(id(s), id(t), id(u)))
    print("s == s", s == s)
    print("s == t", s == t)
    print("s == u", s == u)
    print("v + v", v + v)
    print("v + w", v + w)
    print("w + w", w + w)
    print("v * 10", v * 10)
    print("w * 3", w * 3)
