
#! /usr/bin/env python # According to # http://www.cafepy.com/articles/python_attributes_and_methods/ch03s02.html # the correct ways to subtype mutable and immutable built-in types are # Mutable class MyList(list): def __init__(self, itr): list.__init__(self, [int(x) for x in itr]) # Immutable class MyTuple(tuple): def __new__(typ, itr): return tuple.__new__(typ, [int(x) for x in itr]) # This doesn't work. class MyTuple(tuple): def __init__(self, itr): tuple.__init__(self, [int(x) for x in itr]) # A variant is class MyList(list): def __init__(self, *args): list.__init__(self, args) class MyTuple(tuple): def __new__(typ, *args): return tuple.__new__(typ, args) # This doesn't work. class MyTuple2(tuple): def __init__(self, *args): tuple.__init__(self, args) print MyList(1, 2) print MyTuple(1, 2) print MyTuple2(1, 2) # This warty stuff needs documenting.