I don't understand why the new instance of the TypeList class does not have a my_type attribute.
t.i.a. for any help
Here is my code:
import copy
class TypedList(list):
    def __init__(self, typeof, iterable=''):
        """
        Initialize the typed list.
        Examples:
        tmp = TypedList(str, 'foobar') # OK
        tmp = TypedList('str', 'foobar') # FAIL!
        """
        if not issubclass(type(typeof), object):
            raise TypeError('typeof must inherit from object')
        if type(typeof) is not type:
            raise TypeError('typeof, argument must be a python object type.\n'
              'Not a string stating the type of python object.\n'
              'Example: TypedList(str), not Typedlist("str")')
        self.my_type = typeof
        for item in iterable:
            if type(item) != self.my_type:
                raise TypeError('%s is of type %s; it should be type %s' %
                  (item, type(item), self.my_type))
        super(TypedList, self).__init__(iterable)
    def append(self, item):
        """
        Append an item to the typed list.
        """
        if type(item) != self.my_type:
            raise TypeError('item must be of type %s' % self.my_type)
        return super(TypedList, self).append(item)
if __name__ == '__main__':
    foo = TypedList(str, 'test')
    bar = copy.deepcopy(foo)
Executing it returns this output:
$ python tl.py 
Traceback (most recent call last):
  File "tl.py", line 53, in <module>
    bar = copy.deepcopy(foo)
  File "/usr/lib/python2.6/copy.py", line 189, in deepcopy
    y = _reconstruct(x, rv, 1, memo)
  File "/usr/lib/python2.6/copy.py", line 329, in _reconstruct
    y.append(item)
  File "tl.py", line 46, in append
    if type(item) != self.my_type:
AttributeError: 'TypedList' object has no attribute 'my_type'