import copy

class T:
   def classname(self): 
      return self.__class__.__name__

   def __init__(self):
      self.myValue = 

   def speak(self):
      print self.classname(), 'Hello', self.myValue

   def clone(self):
      return copy.copy(self)

class S1(T):
   def speak(self):
      print self.classname(),, self.myValue

class S2(T):
   def speak(self):
      print self.classname(),, self.myValue


print 
a = S1()
a.myValue = 'Green'
a.speak()

b = S2()
b.myValue = 'Blue'
b.speak()

u = T()
u.myValue = 'Purple'
u.speak()

print 
u = a.clone()
u.speak()
a.speak()
print 
u.myValue = 
u.speak()
a.speak()

print 
u = b
u.speak()
b.speak()
print 
u.myValue = 
u.speak()
b.speak()